hive 数据倾斜处理

hive产生数据倾斜的常见原因
一key分布不均衡
二、业务问题或者业务数据本身的问题,某些数据比较集中  如按日期分区后,某一段日期数据量过大
三、建表的时候考虑不周 表分区不合理或者分区过少
四、某些sql语句本身就有数据倾斜,   
hive数据倾斜解决方案
1join时:首先是大表关联小表,容易发生数据倾斜一个大表和一个小表进行join操作时。使用mapjoin将小表加载到内存中
2join时:空key过多,或者相同key过多  如果是异常数据就过滤,join前先过滤 不是异常数据null值分配随机的key值
3join时:不同数据类型关联产生数据倾斜 把数字类型转换成字符串类型
4join时:大表和不大不小的表联接 去重后大表可能会变成小表,这样又可以mapjoin
5join时:大表联接大表 两个大表联查,分桶优化
6group by发生的数据倾斜group by引起的倾斜主要是输入数据行按照group by列分布不均匀引起的。
解决思路就是将这些key值打散,使起分散到多个reduce节点处理即可,达到负载均衡的效果
7count distinct优化   先group by再count的方式来优化
8行列过滤 优化​编辑
9面对复杂逻辑,每个map耗时较长,适当增加map的个数
10假如小文件比较多,可以先进行小文件合并
11合理调整reduce个数
12有些阶段不完全依赖的话可以并行执行 前提资源空闲

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值