概述
Apache Beam 棱镜运行器可用于使用 Beam 可移植性 在本地执行 Beam 管道。
棱镜运行器适用于小规模的本地测试,并提供
- 一个静态编译的单个二进制文件,用于简单部署,无需额外配置。
- 在独立模式下执行时提供 Web UI。
- Beam 执行语义的直接实现。
- 一个以流优先的运行时,支持批处理和数据流式传输程序。
- 快速、内存中的执行,以简化 SDK、转换和管道开发。
- 跨语言转换支持。
使用 Go 编写,它是 Go SDK 的默认运行器,但也可以在其他 SDK 中使用(见下文)。
功能
虽然棱镜已经支持大量 Beam 功能,但它尚未支持所有功能。棱镜正在积极开发中,以弥补这些差距。
除了计时器问题之外,使用不支持的功能应该在作业提交时使管道失败。
在 2.59.0 版本 中,棱镜通过了大多数运行器验证测试,但以下功能的管道的例外情况除外
OrderedListState、OnWindowExpiry(例如 GroupIntoBatches)、CustomWindows、MergingWindowFns、与触发器和窗口策略相关的功能、捆绑终结、循环计时器以及一些与编码器相关的問題,例如 Python 组合器打包、Java Schema 转换和异构扁平化编码器。处理时间计时器目前还没有实时支持。
请参阅 路线图,了解如何找到当前进展情况。特定功能支持信息将很快迁移到 运行器能力矩阵。
使用棱镜运行器
- Go SDK
- Java SDK
- Python SDK
棱镜是 Go SDK 的默认运行器,会自动使用。使用标志 --runner=PrismRunner
设置运行器。 将运行器设置为 PrismRunner
。 将运行器设置为 PrismRunner
。
对于其他 SDK,棱镜包含在 Beam Github 版本 上,供下载和独立使用。
以下是一些有关如何测试管道的资源。
- 测试您的管道
- Apache Beam WordCount 演练 包含使用断言记录和测试管道的示例。
- 在 Apache Beam 中测试无界管道 讨论了使用 Java 类 PAssert 和 TestStream 测试您的管道的过程。
指定您的依赖项
使用 Java 时,您必须在 pom.xml
中指定您对直接运行器的依赖项。
本节不适用于 Beam SDK for Python。棱镜是内置的。 本节不适用于 Beam SDK for Go。棱镜是内置的。
除了 Go SDK 之外,棱镜包含在 Beam Github 版本 上,用于在 SDK 上自动下载、启动和关闭。二进制文件缓存在本地,供后续执行使用。
棱镜运行器的管道选项
棱镜旨在将所需的配置降至最低,并且目前不提供用户管道选项。
运行独立的棱镜
棱镜可以作为独立的二进制文件执行,并将提供一个基本的 UI 用于列出作业和作业状态。这是一种可选的棱镜模式,对演示或快速迭代很有用。这不是在 Java 或 Python SDK 中使用棱镜的要求。
这可以通过两种方式完成:从 github 版本下载资产,或使用已安装的 Go 在本地构建二进制文件。
在这两种情况下,棱镜都会在本地提供一个 JobManagement API 端点和一个网页 UI。可以使用 --runner=PortableRunner --endpoint=<端点地址>
提交作业,并使用网页 UI 进行监控。
棱镜二进制文件的示例输出
2024/09/30 09:56:42 INFO Serving JobManagement endpoint=localhost:8073
2024/09/30 09:56:42 INFO Serving WebUI endpoint=https://127.0.0.1:8074
二进制文件具有以下可选标志
--job_port
设置作业管理服务器的端口(默认为 8073)--web_port
设置 Web UI 的端口(默认为 8074)--serve_http
启用或禁用 Web UI(默认为 true)---idle_shutdown_timeout
设置一个持续时间,棱镜将在自动关闭自身之前等待新作业。使用持续时间格式,例如10s
、5m
、2h
。默认为不关闭。
下载发布资产
这种方法不需要安装其他依赖项或运行时。如果您想在其他机器上部署棱镜,建议您使用这种方法。
导航到最新的 Beam 版本 Github 页面,滚动到底部,下载您要运行棱镜的位置的正确资产。
例如,如果您想在较新的 MacBook 上执行棱镜,则应下载 darwin-arm64
资产。对于在许多云机器上执行,则应下载 linux-amd64
资产。
这需要下载适合棱镜将要运行的机器(例如您的开发机器)的正确资产。
只需解压缩并执行。
使用 Go 从发布版本构建。
这种方法需要 安装最新版本的 Go。如果您只想在本地机器上运行棱镜,建议您使用这种方法。
您可以使用 go install
安装棱镜
go install github.com/apache/beam/sdks/v2/go/cmd/prism@latest
prism
或者只需使用 go run
立即构建并执行二进制文件
go run github.com/apache/beam/sdks/v2/go/cmd/prism@latest
上次更新时间:2024/10/31
您找到您要查找的所有内容了吗?
所有内容是否有用且清晰?您想更改任何内容吗?请告诉我们!