SDK 运行时配置
Beam 允许配置 SDK 运行时 以适应不同的集群设置。(以下选项适用于 Python,但其中大部分信息也适用于 Java 和 Go SDK。)
environment_type
确定用户代码将在哪里执行。environment_config
根据environment_type
的值配置环境。DOCKER
(默认):用户代码在每个工作节点上启动的容器内执行。这需要在工作节点上安装 docker。PROCESS
:用户代码由运行器在每个工作节点上自动启动的进程执行。environment_config
:JSON 格式为{"os": "<OS>", "arch": "<ARCHITECTURE>", "command": "<要执行的进程>", "env":{"<环境变量 1>": "<ENV_VAL>"} }
。JSON 中的所有字段都是可选的,除了command
。- 对于
command
,建议使用引导程序可执行文件,该文件可以使用./gradlew :sdks:python:container:build
从源代码构建,并从sdks/python/container/build/target/launcher/linux_amd64/boot
复制到工作机器。请注意,Python 引导程序假设 Python 和apache_beam
模块已安装在每台工作机器上。
- 对于
EXTERNAL
:用户代码将被分派到外部服务。例如,可以通过运行docker run -p=50000:50000 apache/beam_python3.6_sdk --worker_pool
启动 Python 工作程序的外部服务。environment_config
:外部服务的地址,例如localhost:50000
。- 要从 Mac 或 Windows 客户端访问 Docker 化的工作程序池服务,请在客户端上设置
BEAM_WORKER_POOL_IN_DOCKER_VM
环境变量:export BEAM_WORKER_POOL_IN_DOCKER_VM=1
。
LOOPBACK
:用户代码在提交管道的同一个进程中执行。此选项适用于本地测试。但是,它不适合生产环境,因为它在作业来源的机器上执行工作。environment_config
不用于LOOPBACK
环境。
sdk_worker_parallelism
设置每个工作节点上运行的 SDK 工作程序数量。默认值为 1。如果为 0,则运行器会根据不同的参数自动设置该值,例如工作机器上的 CPU 内核数量。仅适用于 Flink 和 Spark 运行器上的 Python 管道。
上次更新时间:2024/10/31
您是否找到了您要查找的所有内容?
所有内容是否都实用且清晰?您想更改任何内容吗?请告诉我们!