7 3 3mapreduce配置調優

2022-02-23 18:45:44 字數 1551 閱讀 9449

通過調節配置引數,達到較優的效能。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...