使用 Direct Runner

Direct Runner在您的机器上执行pipelines,旨在尽可能接近地验证pipelines是否遵守Apache Beam模型。 Direct Runner不是专注于高效的pipeline执行,而是执行额外的检查,以确保用户不依赖模型不能保证的语义。其中一些检查包括:

使用Direct Runner进行测试和开发有助于确保pipelines在不同Beam runners之间是稳健的。另外,当在远程集群上执行pipeline时,调试失败运行可能是一项非常简单的任务。相反,在pipeline代码上执行本地单元测试通常会更快更简单。在本地单元测试您的pipeline还允许您使用您首选的本地调试工具。

以下是有关如何测试pipelines的信息的一些资源。

Direct Runner 先决条件和设置

指定你的依赖

使用Java时,必须指定您的pom.xml中的Direct Runner的依赖关系。

<dependency>
   <groupId>org.apache.beam</groupId>
   <artifactId>beam-runners-direct-java</artifactId>
   <version>2.1.0</version>
   <scope>runtime</scope>
</dependency>

本节不适用于Python的Beam SDK。

Direct Runner的 Pipeline 选项

从命令行执行Pipeline时, 将 runner 设置为 direct 或者是 DirectRunner。 其他Pipeline选项的默认值通常就足够了。

请参阅参考文档 DirectOptions DirectOptions 用于默认值和其他管道配置选项的接口.

附加信息和注意事项

本地执行受本地环境中可用的内存限制。 强烈建议您使用足够小的数据集来运行管道,以适应本地内存。  您可以创建一个小内存数据集使用CreateCreate transform, 或者您可以使用 ReadRead transform 来处理小型本地或远程文件。