数据倾斜解决思路--适合有思路

本文探讨了数据倾斜的原因,包括key分布不均、建表失误和业务数据增长,并提供了定位倾斜代码的方法,如distinct、groupByKey等。解决思路涉及业务逻辑理解、程序优化和参数调整。提出的解决方案包括Hive预处理、过滤倾斜Key、增加shuffle并行度、两阶段聚合、mapJoin、采样倾斜Key和随机前缀扩容。
摘要由CSDN通过智能技术生成
数据倾斜产生原因:
--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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值