概觀
Twister2 執行器可用於在 Twister2 叢集上執行 Apache Beam 管線。Twister2 執行器將 Beam 管線作為 Twister2 工作執行,這些工作可以在 Twister2 叢集上以本機部署或使用 Nomad、Kubernetes、Slurm 等的分散式部署方式執行。
Twister2 執行器適用於大規模批次工作,特別是需要高效能的工作,並提供:
- 批次管線支援。
- 支援 HPC 環境,支援專有的互連技術,如 Infiniband。
- 分散式大規模並行資料處理引擎,使用批量同步並行 (BSP) 執行方式實現高效能。
- 原生支援 Beam 側輸入。
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 文件。
- Twister2 0.6.0
在 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, mesos 。 | standalone |
workerCPUs | 分配給單個工作器的 CPU 數量。使用的 CPU 總數將為 parallelism*workerCPUs 。 | 2 |
ramMegaBytes | 以 MB 為單位分配給單個工作器的記憶體。分配的總記憶體將為 parallelism*ramMegaBytes 。 | 2048 |
上次更新時間:2024/10/31
您是否找到了您要尋找的所有內容?
所有內容是否實用且清楚?您想更改任何內容嗎?請告訴我們!