hive解决数据倾斜问题_hive数据倾斜问题处理(上)

053b098c040d5f30f2158f62cdd106a6.png

前言:数据倾斜大多数是由于数据本身的分布不均匀。故而需要我们使用诸如列裁剪、Mapjoin、GroupBy等方法进行处理。

数据倾斜表现:

1、任务日志进度长度为99%,在日志监控进度条显示只有几个reduce进度一直没有完成。

2、某一reduce处理时长>平均处理时长

3、job数过多

数据倾斜原因分析:

1、key分布不均

2、业务数据本身存在不均匀情况

3、关联字段重复数据较多

解决方法:

1、join定位:第一:主表驱动表应该选择分布均匀的表作为驱动表,并做好列裁剪。

第二:大小表Join,需要记得使用map join,小表会先进入内存,在map端即会完成reduce.

第三:此种情形最为常用!!!大表join大表时,关联字段存在大量空值null key

解决方法为把空值null key变成字符串加上随机数!!!可以0把由于数据倾斜而导致的数据集中到一个reduce上处理的情形,打散到不同的reduce上,9生成多个reduce!!!

on case when haha.id is null then concat('hive',rand()) else 
haha.id end = xixi.id

2、不同数据类型关联也会产生数据倾斜滴!

嘿嘿嘿:例如注册表中ID字段为int类型,登录表中ID字段即有string类型,也有int类型。当按照ID字段进行两表之间的join操作时,默认的Hash操作会按int类型的ID来进行分配,这样会导致所有string类型ID的记录统统统统统统都都都都分配到一个Reduce里面去!!!

解决方法:把数字类型转换成字符串类型

on haha.ID = cast(xixi.ID as string)

往期精彩回顾

第一篇 | 深圳购房投资笔记(一)-楼市有泡沫吗?(上)

第二篇 |深圳购房投资笔记(二)-楼市有泡沫吗?(中)

第三篇|深圳购房笔记(三)-亲身经历货币棚改化(上)

第四篇|深圳购房投资笔记(四)-亲身经历货币化棚改(下)

第五篇|深圳购房投资笔记(五)-因为朋友,被杭州所迷惑

第六篇|深圳购房投资笔记(六)-为何放弃在杭州定居购房

第七篇|深圳购房投资笔记(七)-神奇的深圳人口?(下)

第八篇|深圳购房投资笔记(八)-为何选择在深圳定居购房?

第九篇|深圳购房投资笔记(九)-中国最大的炒房散户欧成效先生

第十篇|深圳购房投资笔记(十)-深圳楼市拐点已来临

第十一篇|深圳购房投资笔记(十一)-楼市谣言四处飞,我向人民说实话(上)

第十二篇|深圳购房投资笔记(十二)-楼市谣言四处飞,我想人民说实话(下)

第十三篇|深圳购房投资笔记(十三)-民间炒房高手财上团(上)

第十四篇|深圳购房投资笔记(十四)-2019年的这一切都是必然的

第十五篇|深圳购房投资笔记(十五)-2019年我们的处境

深圳购房投资笔记(十六)从19年看李嘉诚为何资产

8dfb4d8e770ac601ac38a7cbe307d9ad.png

图片笔者摄于2017年9月23日18:10分,于江西省龙虎山爬山途中。好风光给人力量!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值