HIVE数据倾斜的可能原因有哪些,主要解决方法有哪些

数据倾斜理解:数据层的分布式处理过程中,出现明显的Map或Reduce过程的数据IO 的量级有巨大变化 。
可能原因,分两类:真倾斜和假倾斜
一、假倾斜:本身数据无倾斜,但处理时不均衡导致的数据
倾斜现象
1) 原因:机器配置不一、网络带宽及其通信不一,导
致相同数据量处理情况下,任务的执行程度有明显
的差异。
解决方法:均衡机器配置,标签式解决方法属于更
高级更生产化的解决方法。
2) 原因:程序Bug导致的假倾斜
解决方法:优化代码,解决掉Bug即可。
二、真倾斜:数据真的存在不均衡,而且比较大
1) 原因:输入数据存在大块和小块的严重问题,比如
说:一个大文件128M,还有1000个小文件,每
个1KB。
解决方法:任务输入前做文件合并,将众多小文件
合并成一个大文件。
2) 原因:对数据可切分并行特性应用不正确。比如:
10G的一个rc,或是orc,lzo,和100个128M的
rc,orc,lzo 在并行处理时,不会出现倾斜。如果格
式为gzip,snappy 等不可切分格式,则出现一个
Map进程处理10G的文件的严重倾斜情况。
解决方法:当数据不能利用切分并行计算时,一定
要合理计算出文件的占磁盘大小,最好不要超过
200M以上。
3) 原因:Join 端产生大数据量Key的合并情况,经
如说有视频流中的刷流量情况,会员帐号当中的共
享帐号情况。
解决方法:找到该种黑名单种子列表,在Map阶
段时候,即将其过滤掉。
4) 万能贴解决:hive.groupby.skewindata,通过
任务先分散并行执行一个阶段,然后再全局合并。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值