Java を使用して、Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法
はじめに:
Apache Flink は、強力なオープンソースのストリーム処理です。およびバッチ処理アプリケーション 高スループット、高信頼性、低遅延のバッチ処理フレームワーク。この記事では、Java を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法を紹介し、詳細なコード例を示します。
1. 環境の準備
2. プロジェクトの作成
3. 依存関係の導入
プロジェクトの 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' }
4. Flink ストリーム処理アプリケーションの実装
「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"); } }
5. Flink バッチ処理アプリケーションの実装
「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"); } }
結論:
この記事の導入部を通じて、Java を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法を学習しました。ニーズに応じてストリーミングおよびバッチ処理アプリケーションにロジックを追加し、Flink の機能をさらに探索できます。 Flink 開発の旅で良い結果が得られることを祈っています。
以上がJava を使用して Apache Flink に基づくストリーム処理およびバッチ処理アプリケーションを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。