Hive3

P21-P25

Hive优化_fetch抓取

  1. fetch抓取是指Hive中某些任务可以不通过mr,比如说select * from 一张表,通过set hive.fetch.task.conversion=more可以设置

Hive优化_本地模式

  1. 很多情况下,Hive可以通过本地模式在单台机器上处理所有任务,对于小数据集,处理时间明显缩短
  2. 通过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

  1. 该任务是一个没有reducer的MR
set hive.auto.convert.join=true;

Hive优化_GroupBy

  1. 并不是所有聚合操作都在reduce端完成,很多聚合操作可以在map端执行,然后在reduce端得到最终结果

(1)Map是否需要聚合设置为true:
set hive.map.aggr=ture;

你可能感兴趣的:(Hive3)