P21-P25
Hive优化_fetch抓取:
- fetch抓取是指Hive中某些任务可以不通过mr,比如说select * from 一张表,通过set hive.fetch.task.conversion=more可以设置
Hive优化_本地模式:
- 很多情况下,Hive可以通过本地模式在单台机器上处理所有任务,对于小数据集,处理时间明显缩短
- 通过set hive.exec.mode.local.auto=true设置
Hive优化_小表join大表:
insert overwrite table jointable
select b.id,b.time
from smalltable s
left join bigtable b
on s.id=b.id;
Hive优化_空key处理:
1.大表join大表的情况下,当存在大量空key的时候,有两种处理手段:
(1)过滤掉空key
(2)将空key用随机数填充
insert overwrite table jointable
select n.* from nullidtable n full join bigtable b on
case when n.id is null then concat('hive',rand()) else n.id end = b.id;
其中concat('hive',rand())是将字符串hive和随机数拼接
Hive优化_MapJoin:
- 该任务是一个没有reducer的MR
set hive.auto.convert.join=true;
Hive优化_GroupBy:
- 并不是所有聚合操作都在reduce端完成,很多聚合操作可以在map端执行,然后在reduce端得到最终结果
(1)Map是否需要聚合设置为true:
set hive.map.aggr=ture;
网友评论