数据倾斜产生原因:
--key分布不均匀
--建表时考虑不周
--业务数据激增
解决思路:重点对于数据设计和业务的理解
--业务逻辑
--程序层面
--参数方面
--从业务和数据上解决数据倾斜
定位导致数据倾斜代码
--distinct groupByKey reduceByKey aggregateByKey join cogroup repartion
使用采样数据查看数据key的分布情况
数据倾斜的解决方案
1--使用Hive ETL预处理数据 Hive也可能导致数据倾斜
--适合对Spark的执行性能要求很高,提前进行处理
2--过滤少数导致倾斜的Key
--采样取Key
3--提高shuffle操作的并行度
--sparkshuffle默认200 设置为1000提高并行度
--某个Key太大还是无法解决
4--两阶段聚合(局部聚合+全局聚合)
5--将reduce join转为map join
--广播小表 使用map方法
6--采样倾斜key并分拆join操作
--大表join大表 分区和分表
7--使用随机前缀和扩容RDD进行join
数据倾斜解决思路--适合有思路
最新推荐文章于 2024-09-28 12:59:03 发布
本文探讨了数据倾斜的原因,包括key分布不均、建表失误和业务数据增长,并提供了定位倾斜代码的方法,如distinct、groupByKey等。解决思路涉及业务逻辑理解、程序优化和参数调整。提出的解决方案包括Hive预处理、过滤倾斜Key、增加shuffle并行度、两阶段聚合、mapJoin、采样倾斜Key和随机前缀扩容。
2346

被折叠的 条评论
为什么被折叠?



