一、背景:
flink任务部署使用基于k8s的standalone集群,先在容器上部署flink集群再提交flink任务,其中flink任务的提交与taskmanager的创建、注册是同时进行的。
二、问题
如果集群有35个taskmanager,140个slot,其中一个Vertex的并行度<140,属于该vertex的task在taskmanager上分布不均,导致节点负载不均衡。
如下所示,
-
该flink拓扑拥有5个vertex,其中两个vertex并行度为140,其他三个并行度根据kafka分区数设置为:10、30、35。任务最大并行度为140,任务资源配置为:35个【4core 8gb】的taskManager节点。
-
通过web ui可发现,即使配置了cluster.evenly-spread-out-slots:true,另外三个vertex的task依然会被调度到同个taskmanager上。