概述
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 运行器的管道选项
字段 | 描述 | 默认值 |
---|---|---|
运行器 | 要使用的管道运行器。此选项允许您在运行时确定管道运行器。 | 设置为 `Twister2Runner` 以使用 Twister2 运行。 |
twister2Home | 正在使用的部署的 Twister2 主目录位置。 | 没有默认值。如果没有设置,Twister2 运行器将使用本地部署模式进行执行。 |
并行度 | 设置作业的并行度 | 1 |
集群类型 | 设置正在使用的 Twister 部署类型。有效值为 `standalone, slurm, nomad, mesos`。 | 独立 |
workerCPUs | 分配给单个工作器的 CPU 数。使用的总 CPU 数将为 `parallelism*workerCPUs`。 | 2 |
ramMegaBytes | 分配给单个工作器的内存(以兆字节为单位)。分配的总内存将为 `parallelism*ramMegaBytes`。 | 2048 |
最后更新于 2024/10/31
您是否找到了您要查找的所有内容?
它是否有用且清晰?您想改变什么吗?请告诉我们!