队列设置
set mapreduce.job.queuename=quename;
开启动态分区
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
压缩设置
set mapred.compress.map.output=true;
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression=org.apache.hadoop.io.compress.SnappyCodec;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
set io.compression.codecs=org.apache.hadoop.io.compress.SnappyCodec;
使用正则来实现匹配符合条件的列
set hive.support.quoted.identifiers=none;
map输出时合并小文件
set hive.merge.mapfiles=true; # 在 map-only 任务结束时合并小文件,默认true
set hive.merge.mapredfiles=true; # 在 map-reduce 任务结束时合并小文件,默认false
set hive.merge.size.per.task=256*1000*1000; # 合并文件的大小,默认256M
set hive.merge.smallfiles.avgsize=16000000; # 当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge
并行设置
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=8;
内存相关设置
set mapreduce.map.memory.mb=4096; # 每个Map Task需要的内存量
set mapreduce.map.java.opts=-Xmx3276m; # 每个Map Task 的JVM最大使用内存
set mapreduce.reduce.memory.mb=4096; # 每个Reduce Task需要的内存量
set mapreduce.reduce.java.opts=-Xmx3276m; # 每个Reduce Task 的JVM最大使用内存
JVM重用
set mapreduce.job.jvm.numtasks=5; # 代表同一个MR job中顺序执行的5个task重复使用一个JVM,减少启动和关闭的开销