我希望在运行Beam wordcount.py演示时获得有关如何设置--environment_config
的指导。
在DirectRunner上运行良好。 Flink的单词计数也可以正常运行(即通过flink run
运行Flink)。
我想使用beam documentation中所述的“分离的Flink群集”,使用Flink运行程序运行Beam。我不能使用Docker,所以我打算使用--environment_type=PROCESS
。
我在python代码中使用以下代码来设置environment_config:
environment_config = dict()
environment_config['os'] = platform.system().lower()
environment_config['arch'] = platform.machine()
environment_config['command'] = 'ls'
ec = "--environment_config={}".format(json.dumps(environment_config))
显然该命令不正确。运行此命令时,Flink确实会接收并成功处理DataSource
子任务。最终会在CHAIN MapPartition
上超时。
有人可以提供有关如何设置environment_config的指南(或链接)吗?我正在奇异容器内运行Beam。
答案 0 :(得分:1)
对于environment_type = DOCKER来说,大多数事情都由您完成,但是在过程模式下,您必须自己进行很多设置。您要查找的命令是sdks/python/container/build/target/launcher/linux_amd64/boot
。您将需要拥有该可执行文件(可以使用./gradlew :sdks:python:container:build
从源代码构建)和Python安装,包括Beam和所有工作机上的其他依赖项。