Java を使用して Flink ベースのストリーム処理およびバッチ処理アプリケーションを開発する方法
要約: Flink は、イベント時間に基づく分散ストリーム処理エンジンです。バッチ処理をサポートします。この記事では、Java 言語を使用して Flink ベースのストリーム処理およびバッチ処理アプリケーションを開発する方法を紹介し、対応するコード例を示します。
1. 背景の紹介
Flink は、高性能、高信頼性のストリーム処理エンジンであり、低遅延、高スループットの特性を持ち、無制限のデータ ストリーム、バッチ処理、反復計算を処理できます。 . およびその他のシナリオ。 Flink は、豊富な API とツール、およびサードパーティ システムとの統合サポートも提供します。
2. 環境の準備
まず、Java Development Kit (JDK) と Apache Flink をインストールする必要があります。環境変数が正しく設定されていることを確認してください。次のコマンドを使用して、インストールが正しいかどうかを確認できます:
java -version flink --version
3. ストリーム処理アプリケーション
3.1 プロジェクトの作成
まず、新しい Maven プロジェクトを作成し、Flink 依存関係を追加します。 pom.xml ファイルに次の内容を追加します。
<dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.9.3</version> </dependency> </dependencies>
3.2 データ ソース
Flink では、ストリーミング データ ソースは Source と呼ばれます。以下は、ソース関数を使用して、1 ~ 100 の数値を含むデータ ストリームを作成するサンプル コードです。
DataStream<Integer> stream = env.fromCollection(Arrays.asList(1, 2, 3, ..., 100));
3.3 データの変換と処理
Flink は、処理できる豊富な変換および処理関数を提供します。データ ストリーム さまざまな操作を実行します。以下は、データ ストリームの各要素に 1 を加算し、偶数を除外するサンプル コードです。
DataStream<Integer> result = stream .map(new MapFunction<Integer, Integer>() { @Override public Integer map(Integer value) throws Exception { return value + 1; } }) .filter(new FilterFunction<Integer>() { @Override public boolean filter(Integer value) throws Exception { return value % 2 == 0; } });
3.4 結果出力
Flink は、コンソールやファイル、データベースなどのさまざまなターゲットへの結果の出力をサポートします。 、など。結果をコンソールに出力するサンプル コードを次に示します。
result.print();
3.5 ストリーム処理アプリケーションの実行
最後に、execute 関数を使用してストリーム処理アプリケーションを実行します。
env.execute("Stream Processing Job");
4 . バッチ処理アプリケーション
4.1 プロジェクトの作成
同様に、Maven プロジェクトに Flink の依存関係を追加します。
4.2 データ ソース
バッチ処理アプリケーションのデータ ソースは DataSet を使用します。以下は、fromElements 関数を使用して文字列を含むデータ セットを作成するサンプル コードです。
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<String> dataSet = env.fromElements("Hello", "World");
4.3 データの変換と処理
Flink は、データ セットを処理できるストリーム処理と同様の変換および処理関数を提供します。さまざまな操作。データ セット内の各文字列を大文字に変換し、3 を超える長さの文字列を除外するサンプル コードを次に示します。
DataSet<String> result = dataSet .map(new MapFunction<String, String>() { @Override public String map(String value) throws Exception { return value.toUpperCase(); } }) .filter(new FilterFunction<String>() { @Override public boolean filter(String value) throws Exception { return value.length() > 3; } });
4.4 結果出力
ストリーム処理アプリケーションと同様に、バッチ処理アプリケーションもサポートします。結果をさまざまなターゲットに出力します。
4.5 バッチ アプリケーションの実行
execute 関数を呼び出してバッチ アプリケーションを実行します。
result.print();
5. まとめと展望
この記事では、Java を使用して Flink ベースのアプリケーションを開発する方法を紹介します。 stream 処理およびバッチ アプリケーションの基本的な手順と、対応するコード例。 Flink を使用すると、高性能で信頼性の高いストリーム処理アプリケーションとバッチ処理アプリケーションを迅速に構築でき、他のシステムと統合することもできます。この記事が、読者が Flink を使用してアプリケーションを開発し、実際のプロジェクトにさらに適用する基本的な方法を理解して習得するのに役立つことを願っています。
以上がJava を使用して Flink ベースのストリーム処理およびバッチ処理アプリケーションを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。