HIVE优化之不需要参数优化

#1.数据倾斜
什么是数据倾斜?
一部分数据多
一部分数据少
造成的结果: MR运行过慢 主要是shuffle和reduce过程慢

分组聚合导致数据倾斜

Hive未优化的分组聚合
在这里插入图片描述
方法1:在MAP端直接聚合(分组聚合优化),减少Key
MR失败

方法2:随机数,按随机数放入reduce中 解决数据倾斜 第二个Jobs按分组字段分区
因为生成随机了,所以按

方法1和方法2 一起用是不影响的
先进行聚合 然后按随机数分配reduce 再启动一个job dierge job 按分组字段分区

join的数据倾斜
最后根据KEY进行分组
在这里插入图片描述
这里的数据倾斜的现象和影响是什么呢?
1.map join
2. skew join
牺牲一个job为代价解决
将产生数据倾斜的Key去单独跑一个job
其实就是啥, map将大K提出来重新一个job ,剩下的直接生成结果集,然后job2的结果最后也注入结果集
根据参数判断
在这里插入图片描述
这里晚点多看一下
大表Join 对倾斜Key的表的key打散,对关联的另一张表的key扩容
为什么????

reduce 并行度
可以指定并行度,也可以自动
可以设置最大值
为什么最大默认1009
在这里插入图片描述

可以设置reduce task数据量 估算Reduce并行度

reduce task量与数据量相关合理么?
不合理,因为收到的是map处理后的数据,有可能已经变小很多了,在reduce端小文件
但是无法获取map的数据量

在这里插入图片描述
3表join OBC如何优化?
在这里插入图片描述
在这里插入图片描述
优化后: 先进行小表合并,

谓词下推
谓词下推(predicate pushdown)是指,尽量将过滤操作前移,以减少后续计算步骤的数据量。
CBO优化也会完成一部分的谓词下推优化工作,因为在执行计划中,谓词越靠前,整个计划的计算成本就会越低。
–是否启动谓词下推(predicate pushdown)优化
set hive.optimize.ppd = true;
白话:
在这里插入图片描述
谓词下推:先执行过滤条件再执行join

在这里插入图片描述

hive本地模式
在这里插入图片描述
开启自动转换模式
符合条件用本地 不符合条件用集群
与直接设置HADOOP参数语句的不同
一个自动,一个主动。

set mapreduce.framework.name=local;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值