概觀

Twister2 執行器可用於在 Twister2 叢集上執行 Apache Beam 管線。Twister2 執行器將 Beam 管線作為 Twister2 工作執行,這些工作可以在 Twister2 叢集上以本機部署或使用 Nomad、Kubernetes、Slurm 等的分散式部署方式執行。

Twister2 執行器適用於大規模批次工作,特別是需要高效能的工作,並提供:

Beam 功能矩陣 文件說明了 Twister2 執行器支援的功能。

使用 Twister2 執行器執行 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 執行器的 Beam 版本(即從 2.23.0 開始)都使用特定版本的 Twister2。因此,當我們啟動獨立的 Twister2 叢集並嘗試在其上執行 Beam 範例時,我們需要確保兩者兼容。請參閱下表,了解針對各種 Beam 版本建議使用的 Twister2 版本。

Beam 版本相容的 Twister2 版本
2.23.0 或更新版本0.6.0
2.22.0 或更舊版本不適用

Twister2 網站下載與您使用的 Beam 相容的最新 Twister2 版本。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要使用的管線執行器。此選項可讓您在執行時確定管線執行器。設定為 Twister2Runner 以使用 Twister2 執行。
twister2Home正在使用的部署的 Twister2 主目錄位置。沒有預設值。如果未設定,Twister2 執行器將使用本機部署模式執行。
parallelism設定工作的並行度1
clusterType設定正在使用的 Twister 部署類型。有效值為 standalone, slurm, nomad, mesosstandalone
workerCPUs分配給單個工作器的 CPU 數量。使用的 CPU 總數將為 parallelism*workerCPUs2
ramMegaBytes以 MB 為單位分配給單個工作器的記憶體。分配的總記憶體將為 parallelism*ramMegaBytes2048