我觉得这个非常必要需要解决,后续可以提升下。 我相信假设生产中flink集群如果是5台机器,不管slot是多少,对于任务来说,复杂算子的并行度自然会设置为5的倍数,非5倍数的一般可能是不可并行的算子(比如一些数据量极少的配置流等)。这些非5倍数的算子影响到5倍数算子的均衡分配会很麻烦。 目前使用1.10的cluster.evenly-spread-out-slots: true可以保证如果算子都是5的倍数,所有算子都会均衡到5机器。但是不可避免会有部分非5倍数的算子,进而影响到复杂算子的均衡。
Xintong Song <[email protected]> 于2020年9月22日周二 上午10:21写道: > Flink 现阶段并不支持你说的这种针对特定算子的负载均衡。如果采用默认的 slot sharing 策略,是可以通过调整每台机器上的 tm 和 > slot 个数来控制 cluster 总共只有 15 个 slot,这样可以保证 C 在 5 台机器上是均衡的。但是 B > 目前是没有比较好的方法保证的。 > > Thank you~ > > Xintong Song > > > > On Mon, Sep 21, 2020 at 5:45 PM 赵一旦 <[email protected]> wrote: > > > > > > 当前的flink资源分配问题。我一个任务3个算子,算子A并行度为1,算子B并行度为10,算子C并行度15。集群5台机器。我怎么保证算子B和C在5台机器完全均衡呢?我不介意算子A在哪,但算子B和C必须完全均衡到5个机器。 > > > > > > 算子更多了就更复杂了,部分算子的并行度不是5的倍数,会导致越来越多的类似B和C这些算子在5台机器的不均衡。 > > >
