#reduce的輸出是否壓縮
set mapred.output.compress=true;
#控制是否將hive中最后的結果進行壓縮的。如果將該參數設置為true的時候,文件類型一般會選擇SequenceFile。
set hive.exec.compress.output=true;
#決定了使用哪種文件格式,默認textfile
SET hive.default.fileformat=Orc;
#允許所有分區為動態分區,默認strict
set hive.exec.dynamic.partition.mode=nonstrict;
#開啟動態分區功能,默認false
set hive.exec.dynamic.partition=true;
#在所有執行MR的節點上,最大一共可以創建多少個動態分區,默認1000;
SET hive.exec.max.dynamic.partitions=100000;
#在每個執行MR的節點上,最大可以創建多少個動態分區,默認100;
SET hive.exec.max.dynamic.partitions.pernode=100000;
#可以控制一個sql中多個可並行執行的job
set hive.exec.parallel=true;
#控制對於同一個sql來說同時可以運行的job的最大值,該參數默認為8
set hive.exec.parallel.thread.number=3;
#控制一個job會有多少個reducer來處理,依據的是輸入文件的總大小。默認1GB
#這個並不會影響mapre.reduce.tasks參數的設置。
#mapred.reduce.tasks 這個參數如果指定了,hive就不會用它的estimation函數來自動 計算reduce的個數,而是用這個參數來啟動reducer。默認是-1.
#如果我們不指定mapred.reduce.tasks, hive會自動計算需要多少個reducer。
#計算的公式: reduce個數 = InputFileSize / bytes per reducer
set hive.exec.reducers.bytes.per.reducer=128000000;
#設置為true,hive會首先嘗試本地模式執行,盡可能避免mapreduce
hive.exec.mode.local.auto
#可以將表字段打印出來
Hiveconf配置項hive.cli.print.header=true
#為true來提高聚合性能,在map端進行頂級聚合,會需要更多的內存
hive.map.aggr
#權限
set hive.warehouse.subdir.inherit.perms=false;
#map任務虛擬CPU核數,cdh默認1
set mapreduce.map.cpu.vcores=4;
#reduce任務虛擬CPU核數,cdh默認1
set mapreduce.reduce.cpu.vcores=8;
#map任務內存,cdh默認1G
set mapreduce.map.memory.mb=12288;
#reduce任務內存,cdh默認1G
set mapreduce.reduce.memory.mb=16384;
#啟動 JVM 虛擬機時啟動參數,而認值-Xmx200m,表示這個 Java 程序可以使用的最大堆內存數,
#一旦超過這個大小,JVM 就會拋出 Out of Memory 異常,並終止進程。
#mapreduce.map.java.opts一定要小於mapreduce.map.memory.mb
set mapreduce.map.java.opts=-Xmx9216M;
set mapreduce.reduce.java.opts=-Xmx12288M;
#文件分片的存儲空間,建議設為-1,不對其進行限制
set mapreduce.job.split.metainfo.maxsize=-1;
#啟動mapjoin
hive.auto.convert.join=true