使用Apache Beam时,无法使用Flink的CLI或Web-UI设置并行性

时间:2017-10-22 17:45:38

标签: apache-flink docker-swarm apache-beam

我正在使用在Docker上运行的Flink 1.2.1,任务管理器作为Docker Swarm的一部分分布在不同的VM上。

使用Flink Web UI上传Apache Beam应用程序并尝试在作业提交点设置并行性并不起作用。也没有使用Flink CLI提交作业。

似乎并行性并没有在客户端获得,最终默认为1。

当我在Apache Beam代码中以编程方式设置并行性时,它可以工作:flinkPipelineOptions.setParallelism(4);

我怀疑问题的根源可能在org.apache.beam.runners.flink.DefaultParallelismFactory类中,因为它检查Flink的GlobalConfiguration,它可能无法获取传递给Flink的运行时值。

关于如何修复或解决这个问题的任何想法?我需要能够动态地更改并行性,因此编程方法不会起作用,也不会在系统级别设置Flink配置。

我使用以下文档: https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/parallel.html https://beam.apache.org/documentation/sdks/javadoc/2.0.0/org/apache/beam/runners/flink/DefaultParallelismFactory.html

1 个答案:

答案 0 :(得分:0)

这可能应该在Beam Flink Runner中修复,但作为一种解决方法,您可以尝试以编程方式将并行性设置为-1。这应该使翻译获得提交作业时指定的并行性。