跨 flink 任务管理器均匀分配任务槽

时间:2021-03-23 04:32:11

标签: apache-flink flink-streaming flink-batch

我有一个 flink 作业(2 个任务管理器),作业并行度为 64,任务槽为 64。

我将其中一个操作符的并行度设置为 16。这个操作符(16 个并行度)槽在两个任务管理器之间没有均匀分布。它通常需要更高的任务槽位,例如在一个任务管理器中为 10/11,而在另一个任务管理器中为 5/6。

我使用的是 flink 1.11.2 版。我尝试添加 cluster.evenly-spread-out-slots: true 但没有用。非常感谢任何解决方案

1 个答案:

答案 0 :(得分:1)

我不相信你还能做些什么。 Flink 调度器将尝试将消费者任务与其生产者共同定位,以利用网络堆栈中的优化。 (当两个通信任务在同一个 JVM 中时,使用共享内存而不是 netty。)据我所知,cluster.evenly-spread-out-slots: true 实际上只与没有输入首选项的源相关。

通常情况下,降低部分作业的并行度会适得其反,因为它会强制进行网络洗牌(可能会阻止操作符链接),并在任务槽上造成负载偏斜。