cari
RumahOperasi dan penyelenggaraanApacheMari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

Bagaimana untuk menghuraikan data Apache Avro? Artikel ini akan memperkenalkan anda kepada kaedah bersiri untuk menjana data Avro, menyahsiri untuk menghuraikan data Avro dan menggunakan FlinkSQL untuk menghuraikan data Avro saya harap ia akan membantu anda.

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

Dengan perkembangan pesat Internet, teknologi termaju seperti pengkomputeran awan, data besar, kecerdasan buatan AI dan Internet Perkara telah menjadi arus perdana teknologi tinggi teknologi pada era hari ini, seperti laman web e-dagang , pengecaman muka, pemanduan tanpa pemandu, rumah pintar, bandar pintar, dan lain-lain, bukan sahaja memudahkan keperluan harian orang ramai, makanan, perumahan dan pengangkutan, tetapi di sebalik tabir, sentiasa ada yang besar. jumlah data yang dikumpul, dikosongkan dan dianalisis oleh pelbagai platform sistem, dan adalah penting untuk memastikan kependaman rendah, daya pemprosesan tinggi, dan keselamatan data Apache Avro sendiri disiri melalui Skema untuk penghantaran binari memastikan penghantaran data berkelajuan tinggi, dan sebaliknya, ia memastikan keselamatan data , avro kini digunakan secara lebih meluas dalam pelbagai industri Cara memproses dan menghuraikan data avro amat penting data avro melalui siri dan gunakan FlinkSQL untuk analisis.

Artikel ini ialah demo penghuraian avro Pada masa ini, FlinkSQL hanya sesuai untuk penghuraian data avro yang kompleks tidak disokong buat masa ini.

Pengenalan adegan

Artikel ini terutamanya memperkenalkan tiga kandungan utama berikut:

  • Cara mensiri dan menjana data Avro

  • Cara menyahsiri dan menghuraikan data Avro

  • Cara menggunakan FlinkSQL untuk menghuraikan data Avro

Prasyarat

  • Untuk memahami apa itu avro, anda boleh merujuk kepada panduan permulaan pantas laman web rasmi apache avro

  • Fahami senario aplikasi avro

Langkah operasi

1 Cipta projek avro maven baharu dan konfigurasikan kebergantungan pom

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

Kandungan fail pom adalah seperti berikut:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.huawei.bigdata</groupId>
    <artifactId>avrodemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
            <version>1.8.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-maven-plugin</artifactId>
                <version>1.8.1</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>schema</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
                            <outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Nota: Fail pom di atas dikonfigurasikan Menjana laluan kelas secara automatik, iaitu p roject.basedir/s rc/ma in/avro/ dan {project.basedir}/src/main/avro/ dan {project.basedir}/src/main /java/. Selepas konfigurasi ini, apabila melaksanakan perintah mvn, Pemalam ini akan menjana fail kelas secara automatik daripada skema avsc dalam direktori ini dan meletakkannya dalam direktori yang terakhir. Jika direktori avro tidak dijana, buat sahaja secara manual.

2. Tentukan skema

Gunakan JSON untuk mentakrifkan skema untuk Avro. Skema terdiri daripada jenis asas (null, boolean, int, long, float, double, bait dan rentetan) dan jenis kompleks (rekod, enum, tatasusunan, peta, kesatuan dan tetap). Sebagai contoh, yang berikut mentakrifkan skema pengguna, mencipta direktori avro dalam direktori utama dan kemudian mencipta pengguna fail baharu.avsc dalam direktori avro:

{"namespace": "lancoo.ecbdc.pre",
 "type": "record",
 "name": "User",
 "fields": [
     {"name": "name", "type": "string"},
     {"name": "favorite_number",  "type": ["int", "null"]},
     {"name": "favorite_color", "type": ["string", "null"]}
 ]
}

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

3. Susun skema

点击maven projects项目的compile进行编译,会自动在创建namespace路径和User类代码

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

4、序列化

创建TestUser类,用于序列化生成数据

User user1 = new User();
user1.setName("Alyssa");
user1.setFavoriteNumber(256);
// Leave favorite col or null

// Alternate constructor
User user2 = new User("Ben", 7, "red");

// Construct via builder
User user3 = User.newBuilder()
        .setName("Charlie")
        .setFavoriteColor("blue")
        .setFavoriteNumber(null)
        .build();

// Serialize user1, user2 and user3 to disk
DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class);
DataFileWriter<User> dataFileWriter = new DataFileWriter<User>(userDatumWriter);
dataFileWriter.create(user1.getSchema(), new File("user_generic.avro"));
dataFileWriter.append(user1);
dataFileWriter.append(user2);
dataFileWriter.append(user3);
dataFileWriter.close();

执行序列化程序后,会在项目的同级目录下生成avro数据

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

user_generic.avro内容如下:

Objavro.schema�{"type":"record","name":"User","namespace":"lancoo.ecbdc.pre","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":["int","null"]},{"name":"favorite_color","type":["string","null"]}]}

至此avro数据已经生成。

5、反序列化

通过反序列化代码解析avro数据

// Deserialize Users from disk
DatumReader<User> userDatumReader = new SpecificDatumReader<User>(User.class);
DataFileReader<User> dataFileReader = new DataFileReader<User>(new File("user_generic.avro"), userDatumReader);
User user = null;
while (dataFileReader.hasNext()) {
    // Reuse user object by passing it to next(). This saves us from
    // allocating and garbage collecting many objects for files with
    // many items.
    user = dataFileReader.next(user);
    System.out.println(user);
}

执行反序列化代码解析user_generic.avro

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

avro数据解析成功。

6、将user_generic.avro上传至hdfs路径

hdfs dfs -mkdir -p /tmp/lztest/

hdfs dfs -put user_generic.avro /tmp/lztest/

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

7、配置flinkserver

  • 准备avro jar包

将flink-sql-avro-*.jar、flink-sql-avro-confluent-registry-*.jar放入flinkserver lib,将下面的命令在所有flinkserver节点执行

cp /opt/huawei/Bigdata/FusionInsight_Flink_8.1.2/install/FusionInsight-Flink-1.12.2/flink/opt/flink-sql-avro*.jar /opt/huawei/Bigdata/FusionInsight_Flink_8.1.3/install/FusionInsight-Flink-1.12.2/flink/lib

chmod 500 flink-sql-avro*.jar

chown omm:wheel flink-sql-avro*.jar

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

  • 同时重启FlinkServer实例,重启完成后查看avro包是否被上传

    hdfs dfs -ls /FusionInsight_FlinkServer/8.1.2-312005/lib

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

8、编写FlinkSQL

CREATE TABLE testHdfs(
  name String,
  favorite_number int,
  favorite_color String
) WITH(
  &#39;connector&#39; = &#39;filesystem&#39;,
  &#39;path&#39; = &#39;hdfs:///tmp/lztest/user_generic.avro&#39;,
  &#39;format&#39; = &#39;avro&#39;
);CREATE TABLE KafkaTable (
  name String,
  favorite_number int,
  favorite_color String
) WITH (
  &#39;connector&#39; = &#39;kafka&#39;,
  &#39;topic&#39; = &#39;testavro&#39;,
  &#39;properties.bootstrap.servers&#39; = &#39;96.10.2.1:21005&#39;,
  &#39;properties.group.id&#39; = &#39;testGroup&#39;,
  &#39;scan.startup.mode&#39; = &#39;latest-offset&#39;,
  &#39;format&#39; = &#39;avro&#39;
);
insert into
  KafkaTable
select
  *
from
  testHdfs;

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

保存提交任务

9、查看对应topic中是否有数据

Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)

FlinkSQL解析avro数据成功。

【推荐:Apache使用教程

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:掘金社区. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Menggunakan Apache: Laman web Bangunan dan HostingMenggunakan Apache: Laman web Bangunan dan HostingApr 25, 2025 am 12:07 AM

Apache adalah perisian pelayan web sumber terbuka yang digunakan secara meluas dalam hosting laman web. Langkah Pemasangan: 1. Pasang menggunakan baris arahan di Ubuntu; 2. Fail konfigurasi terletak di /etc/apache2/apache2.conf atau /etc/httpd/conf/httpd.conf. Melalui sambungan modul, Apache menyokong hosting kandungan statik dan dinamik, mengoptimumkan prestasi dan keselamatan.

Apache: Adakah ia masih digunakan? Lihatlah trend pelayan webApache: Adakah ia masih digunakan? Lihatlah trend pelayan webApr 24, 2025 am 12:17 AM

Apache masih digunakan secara meluas, tetapi bahagian pasarannya telah menurun dari lebih daripada 50% pada tahun 2010 kepada kurang daripada 30% pada tahun 2023. Kelebihannya terletak pada kestabilan dan kebolehpercayaannya, yang sesuai untuk aplikasi peringkat perusahaan yang memerlukan ciri-ciri ini; Kelemahannya ialah model multi-proses mengambil banyak sumber di bawah kesesuaian yang tinggi, dan NGINX melakukan lebih baik dalam pemprosesan konvensional yang tinggi.

Pelayan Web Apache: Fungsi teras dijelaskanPelayan Web Apache: Fungsi teras dijelaskanApr 23, 2025 am 12:12 AM

Ciri -ciri teras Apachewebserver termasuk reka bentuk modular, konfigurasi hos maya, tetapan keselamatan dan pengoptimuman prestasi. 1) Reka bentuk modular membolehkan sambungan fleksibel dengan memuatkan modul yang berbeza, seperti mod_rewrite untuk penulisan semula URL. 2) Konfigurasi hos maya membolehkan beberapa laman web dijalankan pada satu pelayan. 3) Tetapan keselamatan menyediakan penyulitan SSL/TLS dan kawalan akses. 4) Pengoptimuman Prestasi melibatkan membolehkan pemeliharaan, menyesuaikan konfigurasi MPM, dan membolehkan cache.

Kepentingan berterusan Apache: alasan untuk umur panjangnyaKepentingan berterusan Apache: alasan untuk umur panjangnyaApr 22, 2025 am 12:08 AM

Sebab-sebab kepentingan berterusan Apache termasuk kepelbagaian, fleksibiliti, sokongan komuniti yang kuat, penggunaan yang meluas dan kebolehpercayaan yang tinggi dalam aplikasi peringkat perusahaan, dan inovasi berterusan dalam teknologi baru muncul. Khususnya, 1) Projek Apache merangkumi pelbagai bidang dari pelayan web ke pemprosesan data besar, menyediakan penyelesaian yang kaya; 2) Komuniti Global Yayasan Perisian Apache (ASF) menyediakan momentum sokongan dan pembangunan berterusan untuk projek itu; 3) Apache menunjukkan kestabilan dan skalabiliti yang tinggi dalam aplikasi peringkat perusahaan seperti kewangan dan telekomunikasi; 4) Apache terus berinovasi dalam teknologi baru seperti pengkomputeran awan dan data besar, seperti terobosan dari Apacheflink dan Apachearrow.

Di luar gembar -gembur: Menilai peranan semasa ApacheDi luar gembar -gembur: Menilai peranan semasa ApacheApr 21, 2025 am 12:14 AM

Apache tetap penting dalam ekosistem teknologi hari ini. 1) Dalam bidang perkhidmatan web dan pemprosesan data besar, Apachehttpserver, Kafka dan Hadoop masih menjadi pilihan pertama. 2) Pada masa akan datang, kita perlu memberi perhatian kepada pengiktirafan awan, pengoptimuman prestasi dan penyederhanaan ekosistem untuk mengekalkan daya saing.

Kesan Apache: Hosting Web dan Penghantaran KandunganKesan Apache: Hosting Web dan Penghantaran KandunganApr 20, 2025 am 12:12 AM

Apachehttpserver mempunyai kesan yang besar terhadap pengedaran web dan pengagihan kandungan. 1) Apache bermula pada tahun 1995 dan dengan cepat menjadi pilihan pertama di pasaran, menyediakan reka bentuk dan fleksibiliti modular. 2) Dalam hosting web, Apache digunakan secara meluas untuk kestabilan dan keselamatan dan menyokong pelbagai sistem operasi. 3) Dari segi pengagihan kandungan, menggabungkan penggunaan CDN meningkatkan kelajuan dan kebolehpercayaan laman web. 4) Apache dengan ketara meningkatkan prestasi laman web melalui konfigurasi pengoptimuman prestasi seperti pemampatan kandungan dan tajuk cache.

Peranan Apache: Melayan HTML, CSS, JavaScript, dan banyak lagiPeranan Apache: Melayan HTML, CSS, JavaScript, dan banyak lagiApr 19, 2025 am 12:09 AM

Apache boleh melayani HTML, CSS, JavaScript dan fail lain. 1) Konfigurasi Direktori Root Host dan Dokumen Maya, 2) Menerima, proses dan permintaan balik, 3) Gunakan.

Apa yang dikenali Apache: Ciri dan Pencapaian UtamaApa yang dikenali Apache: Ciri dan Pencapaian UtamaApr 18, 2025 am 12:03 AM

Apachehttpserver telah menjadi pemimpin dalam bidang pelayan web untuk reka bentuk modular, skalabilitas, keselamatan dan pengoptimuman prestasi yang tinggi. 1. Reka bentuk modular menyokong pelbagai protokol dan fungsi dengan memuatkan modul yang berbeza. 2. Sangat berskala untuk menyesuaikan diri dengan keperluan aplikasi kecil hingga besar. 3. Keselamatan melindungi laman web melalui mod_security dan mekanisme pengesahan berganda. 4. Pengoptimuman Prestasi meningkatkan kelajuan pemuatan melalui pemampatan data dan caching.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.