
134
|
第五章:安裝與設定
mapred.compress.map.output
當
map
工作的輸出溢寫入硬碟時,預設沒有進行壓縮。啟用
map
輸出的壓縮可以
大幅降低硬碟
IO
,以及在
MapReduce
任務洗牌階段所需傳輸的資料量。壓縮是
用
CPU
時間換取硬碟
IO
的一種方式,因為壓縮需要額外的
CPU
時間來進行壓縮
與解壓縮。如果系統狀態監控資料顯示,在排序與洗牌階段還有可用的
CPU
資
源,表示運算任務主要是受限於網路頻寬或硬碟
IO
,此時啟用壓縮就幾乎可以肯
定是正確的選擇。
mapred.map.output.compression.codec
參數用來定義壓縮
map
輸出的演算法或
codec
。由於
map
輸出不需要是可分割的(
splittable
),故選擇壓縮
codec
時,是
否俱備這種特性並不重要。這個參數留給系統管理者與程式開發者,可根據資源
使用量與叢集的狀態,動態調整壓縮
codec
的積極度(
aggressive
)。這個參數可
於任務層級指定。
範例設定值:
true
。使用於:
map
子工作(
Child map task
)。
mapred.map.output.compression.codec
Hadoop MapReduce
支援以
Java
類別實作的擴充式(
pluggable
)壓縮
codec
或演
算法。
mapred.map.output.compress.codec
就是設定在
MapReduce
任務中,用來
壓縮
map
輸出的
codec
。如果沒有設定這個參數,系統會改用指定於
org.apache.hadoop.io ...