HIVE引數調優(彙總)
//設定自動mapjoin 為false
set hive.auto.convert.join=false;
set hive.ignore.mapjoin.hint=false
//關閉嚴格模式
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.mapred.mode=nonstrict;
//設定壓縮格式-gzip
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;
//設定壓縮格式-lzo
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzoCodec;
set io.compression.codecs=com.hadoop.compression.lzo.LzoCodec;
//資料傾斜
set hive.map.aggr=true; // map端聚合
set hive.optimize.skewjoin=true;
set hive.groupby.skewindata=true;
//排序記憶體溢位問題
set mapreduce.task.io.sort.mb=10;
set hive.groupby.mapaggr.checkinterval=100000;
// join 記憶體溢位時設定
set mapred.child.java.opts=-Xmx512m;
//設定任務數
set mapred.reduce.tasks=10;
//元資料:巢狀SQL並行執行優化:
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=16;
mapreduce.reduce.shuffle.memory.limit.percent:
預設值: 0.25
說明:一個單一的shuffle的最大記憶體使用限制(可調整為0.1)。
set mapred.max.split.size=1000000;