1. 程式人生 > >hive優化,開啟壓縮功能

hive優化,開啟壓縮功能

調整 配置 emp mapr org format compress 數據傳輸 span

1、開啟hive作業mapreduce任務中間壓縮功能:

對於數據進行壓縮可以減少job中map和reduce task間的數據傳輸量。對於中間數據壓縮,選擇一個低cpu開銷編/解碼器要不選擇一個壓縮率高的編解碼器重要很多。hadoop壓縮的默認編解碼器是DefaultCodec,可以通過設置參數mapred.map.output.compression.codec來進行相應調整,這是一個hadoop配置項,可以在hadoop mapred-site.xml文件更改或hive-site.xml文件進行更改。SnappyCodec是一個比較好的編解碼器,擁有低cpu開銷和好的壓縮率。

開啟中間數據壓縮需要設置參數:

hive.exec.compress.intermediate的值為true;

mapred.map.output.compression.codec為org.apache.hadoop.io.compress.SnappyCodec:

 <property>

                <name>hive.exec.compress.intermediate</name>

                <value>true</value>

        </property>

    <property>

                <name>mapred.map.output.compression.codec</name>

                <value> org.apache.hadoop.io.compress.SnappyCodec </value>

        </property>

註意:hadoop開啟中間壓縮參數為mapred.compress.map.output。

2、開啟hive作業最終輸出結果壓縮功能:

當hive將輸出寫入到表中時,輸出內容同樣可以進行壓縮。通過設置屬性hive.exec.compress.output為true控制輸出結果壓縮。用戶可能需要保持默認設置false,然後通過在查詢語句或執行腳本中設置這個值為true啟用輸出結果壓縮功能。當參數hive.exec.compress.output設置為true時,需要為其制定一個編解碼器,對於輸出文件使用Gzip是個不錯的選擇,因為可以大大減小壓縮文件的大小。但是,需要註意的是Gzip壓縮文件對於後邊mapreduce job而言是不可分割的。

啟用結果壓縮設置參數:

set hive.exec.compress.output=true;

set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

可能的一個hive作業的設置如下:

set mapred.max.split.size=100000000;
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.exec.reducers.bytes.per.reducer=1000000000;

set hive.exec.reducers.max=256;

set hive.merge.mapfiles=true;

set hive.merge.mapredfiles =ture;

set hive.merge.size.per.task=256000000;

set hive.merge.smallfiles.avgsize=16000000;

set hive.exec.compress.intermediate=true;

set mapred.map.output.compression.codec= org.apache.hadoop.io.compress.SnappyCodec;

set hive.exec.compress.output=true;

set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

select deptno,count(1) from emp group by deptno;

hive優化,開啟壓縮功能