Flink数据倾斜的问题如何处理?

提问者:帅平 问题分类:面试刷题
Flink数据倾斜的问题如何处理?
1 个回答
吹南风
吹南风
1、数据源 source 消费不均匀
通过调整Flink并行度,解决数据源消费不均匀或者数据源反压的情况。我们常常例如kafka数据源,调整并行度的原则:Source并行度与 kafka分区数是一样的,或者 kafka 分区数是KafkaSource 并发度的整数倍。建议是并行度等于分区数。

2、key 分布不均匀
上游数据分布不均匀,使用keyBy来打散数据的时候出现倾斜。通过添加随机前缀,打散 key 的分布,使得数据不会集中在几个 Subtask。

3、两阶段聚合解决 KeyBy(加盐局部聚合+去盐全局聚合)
预聚合:加盐局部聚合,在原来的 key 上加随机的前缀或者后缀。
聚合:去盐全局聚合,删除预聚合添加的前缀或者后缀,然后进行聚合统计。
发布于:6个月前 (11-20) IP属地:四川省
我来回答