MapReduce作業性能調優參數

Map端參數調整

參數名稱類型
默認值說明
io.sort.mbint100Map階段內存緩存區大小,默認100M
io.sort.record.percentfloat0.05
io.sort.mb有5%保存記錄邊界,其他緩存用來保存數據
io.sort.spill.percentfloat0.8io.sort.mb超過80%時,進行Spill操作
io.sort.factorint10map結束前做Merge操作時的線程數
min.num.spill.for.combineint3當Map任務生成3個Spill文件時,調用Combine
mapred.compress.map.outputbooleanfalse在Spill文件時,或Merge時,保存到磁盤的文件先壓縮再保存
mapred.map.output.compression.codecclass

org.apache.hadoop.io.

compress.DefaultCodec

GzipCodec,LzoCodec,BZip2Codec,LzmaCodec,SnappyCodec等壓縮格式,Lzo和Snappy是按塊進行壓縮比較合適HDFS按塊存儲的結構


Reduce端參數調整

參數名稱類型默認值說明
mapred.reduce.parallel.copiesint5每個reduce並行下載map結果的最大線程數
mapred.reduce.copy.backoffint300每個reduce下載線程最大等待時間(300s)
io.sort.factorint10同Map端
mapred.child.java.optsstring
jvm參數配置
mapred.job.shuffle.input.buffer.percentfloat0.7Reduce從Map端Copy的數據保存到內存(JVM -Xmx)的大小百分比,默認mapred.child.java.opts*0.7
mapred.job.shuffle.merge.percentfloat0.66Reduce做Merge操作將內存中的數據寫入磁盤,默認mapred.child.java.opts*0.7*0.66
mapred.job.reduce.input.buffer.percentfloat0.0Reduce數據默認從磁盤讀取,設置此參數將Reduce階段用來緩存數據的百分比


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章