hive3之----优化

1.Map优化

---作业会通过Input的目录产生一个或者多个map任务.set dfs.block.szie=128

---Map越多越好吗?是不是保证每个Map处理接近文件块大小?

---如何合并小文件,减少map数

set mapred.max.split.size=100000000;
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.per.rack=1000000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

  适当增加map数

set mapred.map.tasts=10;

   提高map端的聚合性能

set  hive.map.aggr=true;

2.reduce的优化

    

--hive.exec.reducers.bytes.per.reducer;--reduce任务处理的数据量
--调整reduce的个数
   set mapred.reduce.tasks=10

    只有一个reduce的情况

             没有group by ;order  by  ;笛卡尔集

3.做分区裁剪:partition 

4.Mapjoin:--/*mapjoin(tablelist)*/,必须是小表,通常不超过1G,后者50万条记录

5.先做UNion all,在做join或者group by 等操作可以有效减少MR过程

6.join优化

       6.1尽量是有那个同一个键进行连接ON    6.2大表放后面

7.并行执行

set hive.exec.parallel=true

8.数据倾斜:万能方法set .group by .skewindata=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值