hive优化---待补充

 

 

 

 

 

hive优化:   http://itindex.net/detail/46074-hive-%E4%BC%98%E5%8C%96-tips  it瘾的。   hive优化是一个课题 需要在仔细整理
http://www.aboutyun.com/thread-7392-1-1.html  hive join 细节


什么时候可以避免执行MapReduce?
select *
where语句中只有分区字段
set hive.exec.mode.local.auto=true;  设置为本地模式
group by语句
having语句
order by、sort by、distribute by、cluster by语句
orderby是全局排序、sort by是单reduce排序、distribute by是分区字段;
cluster by是distribute by和sort by的简写。


select ip,count(1) as nums from stu group by ip sort by nums desc limit 100;  top(100)
以ip为分类, 以统计个数升序排列展示


join优化:
驱动表(数据最多的表)最右边
join中查询表表的大小从左边到右边依次增大


标志机制
显示的告知查询优化器哪张表示大表
/*+streamtable(table_name)*/  eg:
select  /*+streamtable(stu)*/    显示告知hive编译器 stu是这个join中最大的表  
a.*, b.name from stu a join tea b on  a.id=b.sid;


数据倾斜:
1 怎么看到数据倾斜了,
 是reduce状态是99%一直卡在那,数据倾斜大部分数据都集中在reduce的某个文件中造成这个
 reduce迟迟完不成。
2 哪些原因造成了倾斜

Mr优化:
什么样的依据说把block从128调成256或者64M---> 根据数据源,比如是视频,看视频平均大小
  如果平都都是J几M
集群配置 知道了 才能在优化时候 根据内存 CPU个数来确定容器下map  reduce内存和容器个数


hive group by时,某些字段是NULL或者0时,最容易出现倾斜,
写SQL时, select * from t1 where a!=0;    where name is not null; 过滤掉这些容易倾斜的。
同时开启set hive.map.aggr=true;  
这个设置可以将顶层的聚合操作放在Map阶段执行,从而减轻清洗阶段数据传输和Reduce阶段的执行时间,提升总体性能。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值