Hive 参数汇总
1.组合参数优化:减少 map 数
是否支持可切分的 CombineInputFormat 合并输入小文件此参数必须加否则不生效
set hive.hadoop.supports.splittable.combineinputformat=true;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
一个节点上 split 的最大的大小
set mapred.max.split.size=1073741824;
一个交换机下 split 最小的大小
set mapred.min.split.size.per.node=1073741824;
一个机架下 split 至少的大小
set mapred.min.split.size.per.rack=1073741824;
2.组合参数优化:
调整 reduce 输出大小,降低 reduce 数,降低小文件输出强制指定 reduce 的任务数量,可以设置这个参数,如果不确定忽略此参数,用下面的两个参数
mapred.reduce.tasks=${num}
reduce 最大个数
set hive.exec.reduceRegionServer.max=300;
每个 reduce 任务处理的数据量,一般设置为 2G, 2G = 2147483648 Bytes
set hive.exec.reduceRegionServer.bytes.per.reducer=2147483648;
hive.exec.reduceRegionServer.bytes.per.reducer67108864 默认值是64M
3.优化小文件问题
在 Map-only 的任务结束时启用合并小文件
set hive.merge.mapfiles=true;
在 Map-Reduce 的任务结束时启用合并小文件
set hive.merge.mapredfiles=true;
当输出文件的平均大小小于该值时,启动一个独立的 map-reduce 任务进行文件 merge
set hive.merge.smallfiles.avgsize=1073741824;
合并后文件的大小为 1GB 左右
set hive.merge.size.per.task=1073741824;
4 container 内存大小
map 内存
set mapreduce.map.memory.mb=2048; 集群最小值是 2048M,与
mapreduce.map.memory.mb/mapred.max.split.size 比例是 2:1
reduce
set mapreduce.reduce.memory.mb=4096; 与
hive.exec.reduceRegionServer.bytes.per.reducer 参数比例 1:1~1:2
5.作业通用参数
job 名
set mapreduce.job.name=P_DWA_D_IA_test;
队列名
set mapreduce.job.queuename=ia;
欢迎来撩 : 汇总all