概述

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 运行器的管道选项

字段描述默认值
运行器要使用的管道运行器。此选项允许您在运行时确定管道运行器。设置为 `Twister2Runner` 以使用 Twister2 运行。
twister2Home正在使用的部署的 Twister2 主目录位置。没有默认值。如果没有设置,Twister2 运行器将使用本地部署模式进行执行。
并行度设置作业的并行度1
集群类型设置正在使用的 Twister 部署类型。有效值为 `standalone, slurm, nomad, mesos`。独立
workerCPUs分配给单个工作器的 CPU 数。使用的总 CPU 数将为 `parallelism*workerCPUs`。2
ramMegaBytes分配给单个工作器的内存(以兆字节为单位)。分配的总内存将为 `parallelism*ramMegaBytes`。2048