1. 程式人生 > >Hive壓縮方式設定

Hive壓縮方式設定

Map 輸出階段
開啟 map 輸出階段壓縮可以減少 job 中 map 和 reduce task 之間資料傳輸量。
具體配置如下:

#開啟 hive 中間傳輸資料壓縮功能
hive (bigdata)> set hive.exec.compress.intermediate=true;
#開啟 mapreduce 中 map 輸出壓縮功能
hive (bigdata)> set mapreduce.map.output.compress=true;
#設定 mapreduce 中 map 輸出資料的壓縮方式
hive (bigdata)> set mapreduce.map.output
.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;

Reduce 輸出階段
當 Hive 將輸出寫入到表中時,輸出內容同樣可以進行壓縮。屬性hive.exec.compress.output 控制著這個功能。使用者可能需要保持預設設定檔案中的預設值false,這樣預設的輸出就是非壓縮的純文字檔案了。使用者可以通過在查詢語句或執行指令碼中設定這個值為 true,來開啟輸出結果壓縮功能。

#開啟 hive 最終輸出資料壓縮功能
hive (bigdata)> set hive.exec.compress.output
=true;
#開啟 mapreduce 最終輸出資料壓縮 hive (bigdata)> set mapreduce.output.fileoutputformat.compress=true; #設定 mapreduce 最終資料輸出壓縮方式 hive (bigdata)> set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec; #設定 mapreduce 最終資料輸出壓縮為塊壓縮 hive (bigdata)> set mapreduce.output
.fileoutputformat.compress.type=BLOCK;