#设置map端内存,设置的是 Container 的内存上限,运行map和reduce任务的JVM,内存通过mapred.child.java.opts属性来设置,
尽可能设大内存。容器的内存大小通过mapreduce.map.memory.mb和mapreduce.reduce.memory.mb来设置,默认都是1024M。
通过提高运行任务的容器内存上限,来达到优化目的。
set mapreduce.map.memory.mb=4096;
set mapreduce.reduce.memory.mb=8192;
set hive.exec.dynamic.partition=true; #开启动态分区
set hive.execution.engine=tez; #通过设置每次hive查询都会利用tez执行任务。tez 支持DAG作业的计算框架(对MR做了优化)
#合并小文件
set hive.merge.tezfiles=true;
set hive.merge.mapfiles=true;
set hive.merge.mapredfiles=true;
#指定map分区大小和数量
set mapred.max.split.size=256000000;
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
#设置输出文件
set hive.merge.size.per.task = 256000000; #设置合并输出文件的大小
#当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge
set hive.merge.smallfiles.avgsize=16000000;
hive配置优化及其详解
最新推荐文章于 2022-04-19 05:08:52 发布