Apache flink 将运算符并行度设置为大于默认并行度时,Flink任务槽的分布不均匀

Apache flink 将运算符并行度设置为大于默认并行度时,Flink任务槽的分布不均匀,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在一个集群上运行一个Flink作业,该集群在3个Kubernetes吊舱之上包含3个任务管理器。 作业的默认并行度为9,其中一个运算符设置为并行度18。 作业的任务槽数设置为最大并行度值18 我观察到以下行为: 设置为并行18的运算符在所有任务槽之间平均分布 设置为默认值-9的所有其他运算符的分布不均匀。例如: TM1:运行2个子任务 TM2:运行5个子任务 TM3:运行2个子任务 请有人解释一下: 是什么导致了这种不均匀分布? 我可以控制操作员分配进行平衡吗?我怎么做? 目前使用Flink

我正在一个集群上运行一个Flink作业,该集群在3个Kubernetes吊舱之上包含3个任务管理器。 作业的默认并行度为9,其中一个运算符设置为并行度18。 作业的任务槽数设置为最大并行度值18

我观察到以下行为:

设置为并行18的运算符在所有任务槽之间平均分布

设置为默认值-9的所有其他运算符的分布不均匀。例如:

TM1:运行2个子任务 TM2:运行5个子任务 TM3:运行2个子任务 请有人解释一下:

是什么导致了这种不均匀分布? 我可以控制操作员分配进行平衡吗?我怎么做?
目前使用Flink v1.6.3运行时,Flink不支持控制任务在不同TaskManager之间的分布方式。Flink假设所有的槽都相等,因此,不会尝试均匀地分配任务。不过,社区希望添加此功能。这是你的电话号码

使现代化
对于Flink>=1.9.2,此问题已修复。为了能够分散任务,您必须在flink-conf.yaml中配置cluster.allower-spread-out-slots:true。

目前,flink不支持控制任务如何分散到不同的TaskManager中。Flink假设所有的槽都相等,因此,不会尝试均匀地分配任务。不过,社区希望添加此功能。这是你的电话号码

使现代化
对于Flink>=1.9.2,此问题已修复。为了能够分散任务,您必须在flink-conf.yaml中配置cluster.allower-spread-out-slots:true。

对于那些关心的人来说,问题已经解决并解决了。从1.9开始,我们现在有一个选项。它不是默认激活的。仅对那些关心的人来说,问题已经解决并解决了。从1.9开始,我们现在有一个选项。它不是默认激活的