概要

Twister2 Runnerは、Twister2クラスタ上でApache Beamパイプラインを実行するために使用できます。Twister2 Runnerは、BeamパイプラインをTwister2ジョブとして実行します。Twister2ジョブは、Nomad、Kubernetes、Slurmなどを使用して、ローカルデプロイメントまたは分散デプロイメントとしてTwister2クラスタ上で実行できます。

Twister2ランナーは、大規模バッチジョブ、特に高性能を必要とするジョブに適しており、以下を提供します。

Beam機能マトリックスには、Twister2 Runnerでサポートされている機能が記載されています。

Twister2 RunnerでWordCountを実行する

Beamサンプルプロジェクトの生成

Javaクイックスタートページの指示に従ってください。

Twister2ローカルデプロイメントでのWordCountの実行

Beamサンプルプロジェクトで次のコマンドを実行して、新しいTwister2ローカルクラスタを起動し、WordCountの例を実行します。

    $ mvn package exec:java \
        -DskipTests \
        -Dexec.mainClass=org.apache.beam.examples.WordCount \
        -Dexec.args="\
            --runner=Twister2Runner \
            --inputFile=pom.xml \
            --output=counts" \
        -Ptwister2-runner

Twister2デプロイメントでのWordCountの実行

アーキタイプから生成されたBeamサンプルプロジェクトは、特定のリリースされたBeamバージョン(それが `archetypeVersion` プロパティの目的です)から取得されます。 Twister2 Runnerを含む各Beamバージョン(つまり2.23.0以降)は、特定のバージョンのTwister2を使用します。 このため、スタンドアロンのTwister2クラスタを起動してBeamの例を実行しようとすると、2つに互換性があることを確認する必要があります。 さまざまなBeamバージョンに推奨されるTwister2バージョンについては、次の表を参照してください。

Beamバージョン互換性のあるTwister2バージョン
2.23.0以降0.6.0
2.22.0以前該当なし

使用しているBeamと互換性のある最新のTwister2バージョンをTwister2 Webサイトからダウンロードしてください。Twister2は現在、スタンドアロン、Slurm、Mesos、Nomadなど、いくつかのデプロイメントオプションをサポートしています。Twister2デプロイメントとそのセットアップ方法の詳細については、Twister2ドキュメントをご覧ください。

Beamサンプルプロジェクトで次のコマンドを実行して、新しいTwister2ジョブを開始します。「twister2Home」は、Twister2スタンドアロンデプロイメントのホームディレクトリを指している必要があります。

注:現在、ファイルパスは絶対パスである必要があります。

    $ mvn package exec:java \
        -DskipTests \
        -Dexec.mainClass=org.apache.beam.examples.WordCount \
        -Dexec.args="\
            --runner=Twister2Runner \
            --twister2Home=<PATH_TO_TWISTER2_HOME>
            --parallelism=2
            --inputFile=<PATH_TO_FILE>/pom.xml \
            --output=<PATH_TO_FILE>/counts" \
        -Ptwister2-runner

Twister2 Runnerのパイプラインオプション

フィールド説明デフォルト値
runner使用するパイプラインランナー。このオプションを使用すると、実行時にパイプラインランナーを決定できます。Twister2を使用して実行するには、`Twister2Runner`に設定します。
twister2Home使用されているデプロイメントのTwister2ホームディレクトリの場所。デフォルト値はありません。設定されていない場合、Twister2 Runnerは実行にローカルデプロイメントモードを使用します。
並列度ジョブの並列度を設定します1
クラスタタイプ使用されているTwisterデプロイメントのタイプを設定します。有効な値は `standalone、slurm、nomad、mesos`です。スタンドアロン
workerCPUs単一のワーカーに割り当てられたCPUの数。使用されるCPUの総数は `parallelism * workerCPUs`になります。2
ramMegaBytes単一のワーカーに割り当てられたメモリ(メガバイト単位)。割り当てられるメモリの合計は `parallelism * ramMegaBytes`になります。2048