Hive优化笔记(2 - 数据倾斜)

本文探讨了Hive中的数据倾斜问题,包括基本概念、倾斜原因及优化策略。通过参数调节,如启用MapJoin和调整SQL语句,如用group by替换distinct,以及针对倾斜key的特殊处理,来提升Hive查询性能。
摘要由CSDN通过智能技术生成

一 基本概念

简单来说数据倾斜就是数据的key 的分化严重不均,造成一部分数据很多,一部分数据很少。默认情况下, Map 阶段同一 Key 数据分发给一个 reduce,当一个 key 数据过大时,就发生倾斜了

数据倾斜一般有两种情况:
变量值很少: 单个变量值的占比极大,常见的字段如性别、学历、年龄等
变量值很多: 单个变量值的占比极小,常见的字段如收入、订单金额之类的

其在reduce的表现有二:① 任务进度长时间维持在99%,只有少量reduce子任务未完成。这是因为其处理的数据量和其他reduce差异过大;② 单一reduce的时长与平均时长差异过大

二 造成数据倾斜的常见操作

关键词

情形

后果

Join

其中一个表较小,

但是key集中

分发到某一个或几个Reduce上的数据远高于平均值

大表与大表&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值