什么环境_config用于Beam启动flink

时间:2019-11-05 19:23:07

标签: apache-flink apache-beam

我希望在运行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。

1 个答案:

答案 0 :(得分:1)

对于environment_type = DOCKER来说,大多数事情都由您完成,但是在过程模式下,您必须自己进行很多设置。您要查找的命令是sdks/python/container/build/target/launcher/linux_amd64/boot。您将需要拥有该可执行文件(可以使用./gradlew :sdks:python:container:build从源代码构建)和Python安装,包括Beam和所有工作机上的其他依赖项。

我所知道的最好的例子是在这里:https://github.com/apache/beam/blob/cbf8a900819c52940a0edd90f59bf6aec55c817a/sdks/python/test-suites/portable/py2/build.gradle#L146-L165