概要
Hazelcast Jet Runner は、Hazelcast Jet を使用して Beam パイプラインを実行するために使用できます。
Jet Runner と Jet は、大規模な継続的なジョブに適しており、以下を提供します。
- バッチ(バウンド)データセットとストリーミング(アンバウンド)データセットの両方のサポート
- 非常に高いスループットと低いイベントレイテンシを同時にサポートするランタイム
- ストリーミングプログラムにおける自然なバックプレッシャー
- インメモリストレージを備えた分散型大規模並列データ処理エンジン
Jet Runner は現在実験段階であることに注意することが重要です。Jet に存在する多くの機能を使用できません。
- Jet は完全なフォールトトレランスをサポートしていますが、Jet Runner はサポートしていません。ジョブが失敗した場合は、再起動する必要があります。
- Jet の内部パフォーマンスは非常に高くなっています。Beam パイプラインの最適化/処理が完全に実装されていないため、現時点では Runner はそれに匹敵しません。
Jet Runner のサポートされている機能については、Beam 機能マトリックスを参照してください。
Hazelcast Jet Runner を使用した WordCount の実行
Beam examples プロジェクトの生成
Java クイックスタートページの手順に従ってください。
ローカル Jet クラスタでの WordCount の実行
新しい Jet クラスタを開始し、その上で WordCount の例を実行するには、Beam examples プロジェクトで次のコマンドを実行します。
$ mvn package exec:java \
-DskipTests \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="\
--runner=JetRunner \
--jetLocalMode=3 \
--inputFile=pom.xml \
--output=counts" \
-Pjet-runner
リモート Jet クラスタでの WordCount の実行
アーキタイプから生成された Beam examples プロジェクトは、特定のリリースされた Beam バージョン(`archetypeVersion` プロパティに関するものです)から提供されます。Jet Runner を含む各 Beam バージョン(2.14.0 以降)は、特定のバージョンの Jet を使用します。このため、スタンドアロンの Jet クラスタを開始して Beam の例を実行しようとすると、両方が互換性があることを確認する必要があります。さまざまな Beam バージョンに推奨される Jet バージョンについては、次の表を参照してください。
Beam バージョン | 互換性のある Jet バージョン |
---|---|
2.20.0 以降 | 4.x |
2.14.0 - 2.19.0 | 3.x |
2.13.0 以前 | N/A |
使用している Beam と互換性のある最新の Hazelcast Jet バージョンをHazelcast Jet ウェブサイトからダウンロードしてください。
- Hazelcast Jet 3.x
- Hazelcast Jet 4.x
ダウンロードが完了したら、Jet クラスタを開始する必要があります。最も簡単な方法は、ダウンロードした Jet ディストリビューションに付属の `jet-start` スクリプトを使用して Jet クラスタメンバーを開始することです。メンバーは自動検出機能 自動検出機能を使用してクラスタを形成します。2 つのメンバーで構成されるクラスタを起動してみましょう。
クラスタが稼働していることを確認します。
次のような内容が表示されます。
Beam Examples プロジェクトのディレクトリに変更し、次のコマンドを実行して、リモート Jet クラスタにパイプラインを送信して実行します。入力ファイル(カウントする単語を含むファイル)をクラスタが実行されているすべてのマシンに配布してください。そうでなければ、単語カウントジョブはデータを読み取ることができません。
$ mvn package exec:java \
-DskipTests \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="\
--runner=JetRunner \
--jetServers=192.168.0.117:5701,192.168.0.117:5702 \
--codeJarPathname=target/word-count-beam-bundled-0.1.jar \
--inputFile=<INPUT_FILE_AVAILABLE_ON_ALL_CLUSTER_MEMBERS> \
--output=/tmp/counts" \
-Pjet-runner
Jet Runner のパイプラインオプション
項目 | 説明 | デフォルト値 |
---|---|---|
runner | 使用するパイプラインランナー。このオプションを使用すると、ランタイム時にパイプラインランナーを決定できます。 | Jet を使用して実行するには `JetRunner` に設定します。 |
jetGroupNamejetClusterName | 参加する Hazelcast グループの名前。本質的には、Runner が使用する Jet クラスタの ID です。グループを使用すると、各クラスタが独自のグループを持ち、他のクラスタと干渉しない複数のクラスタを作成できます。 Runner が使用する Hazelcast クラスタの名前。 | jet |
jetServers | Jet クラスタメンバーのアドレスのリスト。Runner が独自の Jet クラスタを開始せず、外部で独立して開始されたクラスタを使用する場合に必要です。ip/ホスト名-ポートのペアのカンマ区切りリストの形式で指定します。例:`192.168.0.117:5701,192.168.0.117:5702` | 127.0.0.1:5701 |
codeJarPathname | 外部 Jet クラスタを使用する場合にのみ必要なプロパティ。クラスタで実行する必要があるすべてのコード(つまり、少なくともパイプラインコードとランナーコード)を含む fat jar の場所を指定します。値は、`new java.io.File()` にパラメータとして受け入れられる任意の文字列です。 | デフォルト値はありません。 |
jetLocalMode | Runner によってローカルで開始される Jet クラスタメンバーの数。`0` の場合、Runner は外部クラスタを使用します。それより大きい場合、Runner はそれ自体で開始されたクラスタを使用します。 | 0 |
jetDefaultParallelism | Jet メンバーのローカル並列度。各 Jet クラスタメンバーに作成される DAG の各頂点のプロセッサ数。 | 2 |
jetProcessorsCooperative | DoFns の Jet プロセッサが協調的になることを許可するかどうか(つまり、専用の OS スレッドではなくグリーン スレッドを使用するかどうか)を指定するブール値フラグ。true に設定されている場合、出力がない(同期であるとみなされる)場合を除き、そのようなすべてのプロセッサが協調的になります。 | false |
最終更新日:2024/10/31
お探しのものが見つかりましたか?
すべて役立ち、明確でしたか?変更したいことはありますか?お知らせください!