Hive之常用參數


#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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM