向Flink中的工人分配任务不均

时间:2019-03-04 09:21:56

标签: apache-flink

我有一个Flink批处理作业,它对大型数据集进行操作。我的集群包含25个节点,并作为独立集群运行。关键步骤之一的并行度为70,我希望每个任务管理器在该步骤中获得2到3个插槽,相反,只使用了一半的工作程序,其中一些工作程序最多分配了8个插槽(这是最大数量他们可以得到)。

除了对数据局部性的影响外,另一个副作用是磁盘空间紧张。由于运行所有插槽的工人较少,因此与将插槽分布在群集的所有节点上相比,每个插槽必须存储更多的数据。

我想念什么吗?有没有一种方法可以强制Flink将插槽分配给每个作业尽可能多的TM?

1 个答案:

答案 0 :(得分:1)

目前,Flink不支持在可用的TaskManagers集合中平均分散任务。原因是Flink认为每个插槽都相等。将来,Flink社区计划添加更多的调度功能来解决该问题。

目前,我建议将单个操作员的并行性设置为群集中可用插槽的数量。这样可以确保群集中的所有计算机均被均匀使用。