我在Kubernetes中设置了一个带有6个任务管理器的Flink operator。此外,Kafka主题是用6个分区创建的。我可以确认,当消息发布到Kafka主题时,所有6个分区都有相当数量的记录分发。现在,当我提交从Kafka主题中消耗的Flink作业时,我总是看到1/2的任务管理器承担处理负载,其余的4/5处于空闲状态。
我有tested this with different messages but the behavior is same。在重新启动Flink操作符时,我可以看到不同的任务管理器正在加载,但其他任务管理器则处于空闲状态。
有人能帮我解决这个问题吗?
提前谢谢。
发布于 2022-08-04 17:12:11
在没有很多不同的键的情况下,这种倾斜是最常见的。在这种情况下,keyBy中使用的键可能不会均匀地分布在任务管理器中。如果您可以使用一个产生更多更细粒度密钥的KeySelector,这将是解决这个问题的一种方法。
有关另一种方法,请参见https://stackoverflow.com/a/59525969/2000823。
https://stackoverflow.com/questions/73210511
复制相似问题