hive优化点

1)map join(默认是开启的)

2)分区,分桶

3)合理设置map个数,合理设置reduce个数

4)优化小文件(合并小文件)

在Map执行前合并小文件,减少Map数:CombineHiveInputFormat具有对小文件进行合并的功能

Map输入合并小文件
对应参数:

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;  #执行Map前进行小文件合并
set mapred.max.split.size=256000000;  #每个Map最大输入大小
set mapred.min.split.size.per.node=100000000; #一个节点上split的至少的大小 
set mapred.min.split.size.per.rack=100000000; #一个交换机下split的至少的大小

5)常用参数

输出合并小文件

set hive.merge.mapfiles = true  默认true,在map-only任务结束时合并小文件

set hive.merge.mapredfiles = true 默认false,在map-reduce任务结束时合并小文件

set hive.merge.size.per.task = 256*1000*1000 #合并文件的大小

set hive.merge.smallfiles.avgsize=16000000当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge

7)行列过滤

【注】数据量大的使用mr引擎,数据量小,要求计算快的使用tez引擎,基于内存的计算。

猜你喜欢

转载自www.cnblogs.com/18800105616a/p/12565029.html