我有一个Flink批处理作业,它对大型数据集进行操作。我的集群包含25个节点,并作为独立集群运行。关键步骤之一的并行度为70,我希望每个任务管理器在该步骤中获得2到3个插槽,相反,只使用了一半的工作程序,其中一些工作程序最多分配了8个插槽(这是最大数量他们可以得到)。
除了对数据局部性的影响外,另一个副作用是磁盘空间紧张。由于运行所有插槽的工人较少,因此与将插槽分布在群集的所有节点上相比,每个插槽必须存储更多的数据。
我想念什么吗?有没有一种方法可以强制Flink将插槽分配给每个作业尽可能多的TM?
答案 0 :(得分:1)
目前,Flink不支持在可用的TaskManagers
集合中平均分散任务。原因是Flink认为每个插槽都相等。将来,Flink社区计划添加更多的调度功能来解决该问题。
目前,我建议将单个操作员的并行性设置为群集中可用插槽的数量。这样可以确保群集中的所有计算机均被均匀使用。