ToB企服应用市场:ToB评测及商务社交产业平台

标题: Flink数据倾斜优化 FlinkSql及FlinkDataStream [打印本页]

作者: 海哥    时间: 5 天前
标题: Flink数据倾斜优化 FlinkSql及FlinkDataStream
一.征象及解决


1).征象:相同 Task 的多个 Subtask 中,个别 Subtask 接收到的数据量显着大于其他 Subtask 接收到的数据量,通过Flink Web U1 可以精确地看到每个 Subtask 处理了多少数据,即可判定出 Flink 使命是否存在数据倾斜。通常,数据倾斜也会引起反压。
2).解决
(1)数据源倾斜
比如消耗 katka,但是 katka 的 topic 的分区之间数据不平衡读进来之后调用重分区算子:rescale、rebalance、shuffle,
(2)单表分组聚合(纯流式)倾斜
API:利用 fatmmap 攒批、预聚合
SQL:开启 MiniBatch+LocalGloba
(3)单表分组开窗聚合倾斜第一阶段聚合
key 拼接随机数前缀或后缀,进行keyby、开窗、聚合注意:聚合完不再是 WindowedStream,要获取 WimndowEnd 作为窗口标记作为第二阶段分组依据,制止差别窗口的效果聚合到一起)
第二阶段聚合:按照原来的 key 及 windowEnd 作 keyby、聚合
在项目中,用到 clickhouse,可以第一阶段打散聚合后,直接写入 clickhouse,查 clickhouse 再处理第二阶段
二.FlinkSQL中数据倾斜怎样产生的?怎样解决?

1).产生:在编写FlinkSQL中数据分布不平衡、key值分布不均、JOIN关联键分布不均、JOIN表巨细差异大、窗口操纵题目、并行度不当、数据动态的变化都会导致FlinkSQL在编写过程中造成数据倾斜。

2).解决:

数据准备阶段    (数据预处理)


SQL 语句优化


系统配置优化


监控与动态调整


总结:针对差别场景下的FlinkSQL做出的优化







三.FlinkDataStream怎样产生的数据倾斜?如何解决?

1).产生:

数据源不均匀使数据自己的特性及数据采集题目存在差异、Key分布不均匀造成业务逻辑分组处理不均、窗口巨细和滑动步长设置不当导致少量集中引发数据倾斜、特定时间段会造成数据热门题目导致数据集中从而引发数据倾斜、JOIN关联键分布不均及维表数据倾斜也会造成数据倾斜、使命并行设置和并行度的设置不均。以上题目大概会导致数据倾斜。
2).解决:

数据预处理


优化 Key 的选择与分布


调整窗口设置


优化 Join 操纵



合理设置并行度


总结: 

 


 
四.总结

 总而言之解决数据倾斜 1).提升性能(减少使命的执行时间、进步资源利用率)2).稳固性增强(制止人数失败、减少背压和反压) 3).降低成本(软件资源成本、运维成本)  4).效果准确性进步(制止数据丢失或重复盘算)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4