ホームページ > Java > &#&チュートリアル > Java を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法

Java を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法

WBOY
リリース: 2023-09-20 08:29:07
オリジナル
711 人が閲覧しました

如何使用Java开发一个基于Apache Flink的流处理和批处理应用

Java を使用して、Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法

はじめに:
Apache Flink は、強力なオープンソースのストリーム処理です。およびバッチ処理アプリケーション 高スループット、高信頼性、低遅延のバッチ処理フレームワーク。この記事では、Java を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法を紹介し、詳細なコード例を示します。

1. 環境の準備

  1. JDK のインストール: コンピューターに Java Development Kit (JDK) がインストールされていることを確認します。 Oracle の公式 Web サイトから JDK をダウンロードし、公式ガイドに従ってインストールできます。
  2. Apache Flink のダウンロード: 最新バージョンの Flink は、公式 Apache Flink Web サイトからダウンロードできます。ダウンロードしたzipファイルを適当な場所に解凍します。
  3. IDE のインストール: 開発に適した IDE を選択できます。 Eclipse または IntelliJ IDEA を使用することをお勧めします。

2. プロジェクトの作成

  1. IDE で新しい Java プロジェクトを作成し、「flink-demo」という名前を付けます。
  2. ダウンロードして解凍した Apache Flink ファイルをプロジェクトのルート ディレクトリにコピーします。

3. 依存関係の導入

  1. プロジェクトの build.gradle ファイルに次の依存関係を追加します:

    dependencies {
     compileOnly project(":flink-dist")
     compile group: 'org.apache.flink', name: 'flink-core', version: '1.12.2'
     compile group: 'org.apache.flink', name: 'flink-streaming-java', version: '1.12.2'
     compile group: 'org.apache.flink', name: 'flink-clients', version: '1.12.2'
    }
    ログイン後にコピー
  2. IDE の場合、プロジェクトのルート ディレクトリを右クリックし、[Gradle プロジェクトの更新] を選択してプロジェクトの依存関係を更新します。

4. Flink ストリーム処理アプリケーションの実装

  1. src/main/java ディレクトリに新しいパッケージを作成し、「com.flinkdemo.stream」という名前を付けます。
  2. 「StreamProcessingJob」という名前の Java クラスを作成し、その中にストリーム処理ロジックを実装します。

    package com.flinkdemo.stream;
    
    import org.apache.flink.streaming.api.datastream.DataStream;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    
    public class StreamProcessingJob {
    
     public static void main(String[] args) throws Exception {
         // 创建一个执行环境
         final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    
         // 从socket接收数据流
         DataStream<String> text = env.socketTextStream("localhost", 9999);
    
         // 打印接收到的数据
         text.print();
    
         // 启动执行环境
         env.execute("Stream Processing Job");
     }
    }
    ログイン後にコピー
  3. IDE で StreamProcessingJob クラスを右クリックし、[実行] -> [Java アプリケーション] を選択してアプリケーションを起動します。

5. Flink バッチ処理アプリケーションの実装

  1. src/main/java ディレクトリに新しいパッケージを作成し、「com.flinkdemo.batch」という名前を付けます。
  2. 「BatchProcessingJob」という名前の Java クラスを作成し、その中にバッチ処理ロジックを実装します。

    package com.flinkdemo.batch;
    
    import org.apache.flink.api.java.ExecutionEnvironment;
    import org.apache.flink.api.java.DataSet;
    import org.apache.flink.api.java.tuple.Tuple2;
    
    public class BatchProcessingJob {
    
     public static void main(String[] args) throws Exception {
         // 创建一个执行环境
         final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    
         // 从集合创建DataSet
         DataSet<Tuple2<String, Integer>> dataSet = env.fromElements(
                 new Tuple2<>("A", 1),
                 new Tuple2<>("A", 2),
                 new Tuple2<>("B", 3),
                 new Tuple2<>("B", 4),
                 new Tuple2<>("C", 5)
         );
    
         // 根据key进行分组,并计算每组的元素个数
         DataSet<Tuple2<String, Integer>> result = dataSet
                 .groupBy(0)
                 .sum(1);
    
         // 打印结果
         result.print();
    
         // 执行任务
         env.execute("Batch Processing Job");
     }
    }
    ログイン後にコピー
  3. IDE で、BatchProcessingJob クラスを右クリックし、[実行] -> [Java アプリケーション] を選択してアプリケーションを起動します。

結論:
この記事の導入部を通じて、Java を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法を学習しました。ニーズに応じてストリーミングおよびバッチ処理アプリケーションにロジックを追加し、Flink の機能をさらに探索できます。 Flink 開発の旅で良い結果が得られることを祈っています。

以上がJava を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート