通過調節配置引數,達到較優的效能。map配置引數
屬性型別
預設值作用
mapreduce.task.io.sort.mb
intmap輸出結果的緩衝區大小兆為單位
mapreduce.map.sort.spill.percent
float
緩衝區占用比例達到這個閾值時,就會生成溢位檔案,將map輸出結果寫入磁碟溢位檔案
mapreduce.task.io.sort.factor
int將溢位檔案按照這個數量進行合併成乙個檔案
mapreduce.map.combine.minspills
int溢位檔案數量少於這個數時,不使用combine,大於時使用combine函式
mapreduce.map.output.compress
bool
false
是否壓縮輸出map結果
mapreduce.map.output.compress.codec
class
org.apache.hadoop.io.compress.defaultcodec
map輸出的編解碼器
mapareduce.shuffle.max.thread
int節點管理器的工作執行緒數量,用於map輸出到reduce,0表示兩倍處理器的執行緒數
給shuffle盡量提供多的記憶體空間,map和reduce函式中盡量少用記憶體。map儘量減少寫磁碟的數量來獲得最佳效能,一次是最佳的情況。mapreduce計數器記錄寫磁碟次數,幫助調優。
屬性型別
預設值說明
mapreduce.reduce.shuffle.parallelcopies
int複製map結果到reduce的執行緒數
mapreduce.reduce.shuffle.maxfetchfailures
int提取map輸出最大嘗試次數,超出後報錯
mapreduce.task.io.sort.factor
int合併檔案數最大值,與map共用
mapreduce.reduce.shuffle.input.buffer.percent
float
0.70
copy階段用於儲存map輸出緩衝區占堆記憶體比例
mapreduce.reduce.shuffle.merge.percent
float
0.66
緩衝區使用率大於這個百分比時開始溢位寫入磁碟
mapreduce.reduce.shuffle.inmem.threshold
int和percent一起控制溢位寫入磁碟,map輸出的個數大於這值時,啟動合併輸出和磁碟溢位寫過程,小於等於0表示沒有閾值,此時只由緩衝池比例來控制
mapreduce.reduce.input.buffer.percent
float
0.0reduce函式開始執行時,預設情況記憶體都用於reduce函式,也就是map輸出都寫入到磁碟。但是為了減少寫磁碟的資料量,允許map輸出儲存在記憶體中的比例。記憶體中的map輸出所佔的堆記憶體比例不得高於這個值,
MapReduce作業調優
1,map緩衝區記憶體改大 環形緩衝區越大,溢寫次數越少,磁碟 io 的次數越少,執行速度就越快 預設100m,可配置 2,map輸出壓縮 減少io 可配置 3,reduce拉取過來的資料直接存記憶體,避免落盤,這樣合併也能在記憶體中完成 可配置 4,shuffle中的多次磁碟io操作非常消耗效能,...
mapreduce作業調優tips
這幾天一直在優化job,下面是我認為有用的一些tips。推測執行在整個集群上關閉,特定需要的作業單獨開啟,一般可以省下約5 10 的集群資源。由mapred.map.task.speculative.execution default true 和mapred.reduce.task.specula...
MapReduce的調優總結
mapreduce的調優總結 mapreduce 伺服器調優 1.mapreduce.task.io.sort.factor mr程式進行合併排序的時候,開啟的檔案數量,預設為10個.3.mapreduce.map.sort.spill.percent mr程式進行flush操作的閥值,預設0.80...