1 个回答
1、数据源 source 消费不均匀
2、key 分布不均匀
3、两阶段聚合解决 KeyBy(加盐局部聚合+去盐全局聚合)
通过调整Flink并行度,解决数据源消费不均匀或者数据源反压的情况。我们常常例如kafka数据源,调整并行度的原则:Source并行度与 kafka分区数是一样的,或者 kafka 分区数是KafkaSource 并发度的整数倍。建议是并行度等于分区数。
2、key 分布不均匀
上游数据分布不均匀,使用keyBy来打散数据的时候出现倾斜。通过添加随机前缀,打散 key 的分布,使得数据不会集中在几个 Subtask。
3、两阶段聚合解决 KeyBy(加盐局部聚合+去盐全局聚合)
预聚合:加盐局部聚合,在原来的 key 上加随机的前缀或者后缀。
聚合:去盐全局聚合,删除预聚合添加的前缀或者后缀,然后进行聚合统计。
发布于:1年前 (2023-11-20) IP属地:四川省
我来回答
您需要 登录 后回答此问题!