検索
ホームページ運用・保守ApacheApache Avro データを解析する方法について話しましょう (例付きで説明)

Apache Avro データを解析するにはどうすればよいですか?この記事では、シリアル化して Avro データを生成する方法、デシリアライズして Avro データを解析する方法、FlinkSQL を使用して Avro データを解析する方法を紹介します。

Apache Avro データを解析する方法について話しましょう (例付きで説明)

インターネットの急速な発展に伴い、クラウド コンピューティング、ビッグデータ、人工知能 AI、モノのインターネットなどの最先端テクノロジーがハイテクの主流になりました。電子商取引ウェブサイト、顔認識、無人運転、スマートホーム、スマートシティなどの今日の時代のテクノロジーは、人々の日用品、食料、住居、交通手段を容易にするだけでなく、その舞台裏では常に大きな問題が存在します。さまざまなシステム プラットフォームによって収集、消去、分析されるデータの量が多く、低遅延、高スループット、データのセキュリティを確保することが特に重要です。Apache Avro 自体は、バイナリ送信のためにスキーマを通じてシリアル化されています。データの高速伝送を保証する一方で、データのセキュリティも確保します。avro は現在、さまざまな業界でますます広く使用されています。avro データをどのように処理および解析するかが特に重要です。この記事では、avro データを生成する方法を説明します。 avro データをシリアル化して分析に FlinkSQL を使用します。

この記事は avro 解析のデモです。現在、FlinkSQL は単純な avro データ解析にのみ適しています。複雑なネストされた avro データは当面サポートされていません。

シーンの紹介

この記事では主に次の 3 つの主要な内容を紹介します。

  • Avro データをシリアル化して生成する方法

  • Avro データを逆シリアル化して解析する方法

  • FlinkSQL を使用して Avro データを解析する方法

##前提条件

  • avro とは何かを理解するには、Apache avro 公式 Web サイトのクイック スタート ガイドを参照してください。

  • avro アプリケーション シナリオを理解する

操作手順

1. 新しい avro maven プロジェクトを作成し、pom 依存関係を構成します

Apache Avro データを解析する方法について話しましょう (例付きで説明)

pom ファイルの内容は次のとおりです:

<?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>

注: 上記の pom ファイルは、クラスへのパス、つまり

##p## が自動的に生成されるように構成されています。 #ro ject. basedir/s#rc/ma#in/avro/ and{project.basedir}/src/main/avro/and ##プロジェクト######。#

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

Apache Avro データを解析する方法について話しましょう (例付きで説明)

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数据

Apache Avro データを解析する方法について話しましょう (例付きで説明)

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

Apache Avro データを解析する方法について話しましょう (例付きで説明)

avro数据解析成功。

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

hdfs dfs -mkdir -p /tmp/lztest/

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

Apache Avro データを解析する方法について話しましょう (例付きで説明)

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

Apache Avro データを解析する方法について話しましょう (例付きで説明)

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

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

Apache Avro データを解析する方法について話しましょう (例付きで説明)

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;

Apache Avro データを解析する方法について話しましょう (例付きで説明)

保存提交任务

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

Apache Avro データを解析する方法について話しましょう (例付きで説明)

FlinkSQL解析avro数据成功。

【推荐:Apache使用教程

以上がApache Avro データを解析する方法について話しましょう (例付きで説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は掘金社区で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Apache Webサーバー:コア機能が説明されていますApache Webサーバー:コア機能が説明されていますApr 23, 2025 am 12:12 AM

Apachewebserverのコア機能には、モジュラー設計、仮想ホスト構成、セキュリティ設定、パフォーマンスの最適化が含まれます。 1)Modular Designは、URL書き換えのためのmod_rewriteなど、さまざまなモジュールをロードすることにより、柔軟な拡張機能を有効にします。 2)仮想ホスト構成により、複数のWebサイトを1つのサーバーで実行できます。 3)セキュリティ設定は、SSL/TLS暗号化とアクセス制御を提供します。 4)パフォーマンスの最適化には、KeepAliveの有効化、MPM構成の調整、およびキャッシュの有効化が含まれます。

Apacheの継続的な重要性:その寿命の理由Apacheの継続的な重要性:その寿命の理由Apr 22, 2025 am 12:08 AM

Apacheの継続的な重要性の理由には、その多様性、柔軟性、コミュニティの強力なサポート、広範な使用、エンタープライズレベルのアプリケーションでの高い信頼性、および新興技術における継続的なイノベーションが含まれます。具体的には、1)Apacheプロジェクトは、Webサーバーからビッグデータ処理までの複数のフィールドをカバーし、豊富なソリューションを提供します。 2)Apache Software Foundation(ASF)のグローバルコミュニティは、プロジェクトの継続的なサポートと開発の勢いを提供します。 3)Apacheは、ファイナンスや電気通信などのエンタープライズレベルのアプリケーションで高い安定性とスケーラビリティを示しています。 4)Apacheは、クラウドコンピューティングやApacheflinkやApachearrowのブレークスルーなどのビッグデータなどの新しいテクノロジーを革新し続けています。

誇大広告を超えて:Apacheの現在の役割の評価誇大広告を超えて:Apacheの現在の役割の評価Apr 21, 2025 am 12:14 AM

Apacheは、今日のテクノロジーエコシステムで依然として重要です。 1)Webサービスとビッグデータ処理の分野では、Apachehttpserver、Kafka、およびHadoopが依然として最初の選択肢です。 2)将来的には、競争力を維持するために、クラウドのネイティブ、パフォーマンスの最適化、エコシステムの簡素化に注意を払う必要があります。

Apacheの影響:Webホスティングとコンテンツ配信Apacheの影響:Webホスティングとコンテンツ配信Apr 20, 2025 am 12:12 AM

apachehttpserverは、Webホスティングとコンテンツの分布に大きな影響を与えます。 1)Apacheは1995年に開始され、すぐに市場で最初の選択肢となり、モジュラーの設計と柔軟性を提供しました。 2)Webホスティングでは、Apacheは安定性とセキュリティに広く使用されており、複数のオペレーティングシステムをサポートしています。 3)コンテンツの分布の観点から、CDNの使用を組み合わせると、Webサイトの速度と信頼性が向上します。 4)Apacheは、コンテンツの圧縮やキャッシュヘッダーなどのパフォーマンス最適化構成により、ウェブサイトのパフォーマンスを大幅に改善します。

Apacheの役割:HTML、CSS、JavaScriptなどにサービスを提供していますApacheの役割:HTML、CSS、JavaScriptなどにサービスを提供していますApr 19, 2025 am 12:09 AM

Apacheは、HTML、CSS、JavaScript、その他のファイルを提供できます。 1)仮想ホストとドキュメントルートディレクトリを構成する、2)受信、プロセス、返品要求、3).htaccessファイルを使用してURL書き換えを実装する、4)アクセス許可、表示、テスト構成の表示、5)パフォーマンスを最適化するためにキープライブの設定を有効にし、ファイルを圧縮し、ファイルを圧縮し、ファイルを圧縮し、設定します。

Apacheが知られていること:主要な機能と成果Apacheが知られていること:主要な機能と成果Apr 18, 2025 am 12:03 AM

Apachehttpserverは、モジュラー設計、高いスケーラビリティ、セキュリティ、パフォーマンスの最適化のために、Webサーバーの分野のリーダーになりました。 1.モジュラー設計は、さまざまなモジュールをロードすることにより、さまざまなプロトコルと関数をサポートします。 2。小規模から大規模なアプリケーションのニーズに適応するために高度にスケーラブルです。 3.セキュリティは、mod_securityと複数の認証メカニズムを通じてWebサイトを保護します。 4.パフォーマンスの最適化により、データの圧縮とキャッシュを介した速度が向上します。

Apacheの永続的な関連性:現在のステータスを調べますApacheの永続的な関連性:現在のステータスを調べますApr 17, 2025 am 12:06 AM

Apachehttpserverは、その安定性、スケーラビリティ、豊富なエコシステムのため、最新のWeb環境で依然として重要です。 1)安定性と信頼性により、高可用性環境に適しています。 2)幅広いエコシステムは、豊富なモジュールと拡張機能を提供します。 3)構成と管理が簡単で、初心者でも迅速に開始できます。

Apacheの人気:成功の理由Apacheの人気:成功の理由Apr 16, 2025 am 12:05 AM

Apacheの成功の理由には、1)強力なオープンソースのコミュニティサポート、2)柔軟性とスケーラビリティ、3)安定性と信頼性、4)幅広いアプリケーションシナリオ。 Apacheは、コミュニティの技術サポートと共有を通じて、柔軟なモジュラー設計と構成オプションを提供し、さまざまなニーズの下で適応性と安定性を確保し、個人のブログから大企業Webサイトまでさまざまなシナリオで広く使用されています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、