大數據開發之MapReduce常用的調優參數

一、資源相關參數

 1)以下參數是在用戶自己的mr應用程序中配置就可以生效(mapred-default.xml)

配置參數

參數說明

mapreduce.map.memory.mb

一個Map Task可使用的資源上限(單位:MB),默認爲1024。如果Map Task實際使用的資源量超過該值,則會被強制殺死。

mapreduce.reduce.memory.mb

一個Reduce Task可使用的資源上限(單位:MB),默認爲1024。如果Reduce Task實際使用的資源量超過該值,則會被強制殺死。

mapreduce.map.cpu.vcores

每個Map task可使用的最多cpu core數目,默認值: 1

mapreduce.reduce.cpu.vcores

每個Reduce task可使用的最多cpu core數目,默認值: 1

mapreduce.reduce.shuffle.parallelcopies

每個reduce去map中拿數據的並行數。默認值是5

mapreduce.reduce.shuffle.merge.percent

buffer中的數據達到多少比例開始寫入磁盤。默認值0.66

mapreduce.reduce.shuffle.input.buffer.percent

buffer大小佔reduce可用內存的比例。默認值0.7

mapreduce.reduce.input.buffer.percent

指定多少比例的內存用來存放buffer中的數據,默認值是0.0

 2)應該在yarn啓動之前就配置在服務器的配置文件中才能生效(yarn-default.xml)

配置參數

參數說明

yarn.scheduler.minimum-allocation-mb         1024

給應用程序container分配的最小內存

yarn.scheduler.maximum-allocation-mb         8192

給應用程序container分配的最大內存

yarn.scheduler.minimum-allocation-vcores   1

每個container申請的最小CPU核數

yarn.scheduler.maximum-allocation-vcores  32

每個container申請的最大CPU核數

yarn.nodemanager.resource.memory-mb   8192

給containers分配的最大物理內存

 3)shuffle性能優化的關鍵參數,應在yarn啓動之前就配置好(mapred-default.xml)

配置參數

參數說明

mapreduce.task.io.sort.mb   100

shuffle的環形緩衝區大小,默認100m

mapreduce.map.sort.spill.percent   0.8

環形緩衝區溢出的閾值,默認80%

二、容錯相關參數(mapreduce性能優化)

配置參數

參數說明

mapreduce.map.maxattempts

每個Map Task最大重試次數,一旦重試參數超過該值,則認爲Map Task運行失敗,默認值:4。

mapreduce.reduce.maxattempts

每個Reduce Task最大重試次數,一旦重試參數超過該值,則認爲Map Task運行失敗,默認值:4。

mapreduce.task.timeout

Task超時時間,經常需要設置的一個參數,該參數表達的意思爲:如果一個task在一定時間內沒有任何進入,即不會讀取新的數據,也沒有輸出數據,則認爲該task處於block狀態,可能是卡住了,也許永遠會卡主,爲了防止因爲用戶程序永遠block住不退出,則強制設置了一個該超時時間(單位毫秒),默認是600000。如果你的程序對每條輸入數據的處理時間過長(比如會訪問數據庫,通過網絡拉取數據等),建議將該參數調大,該參數過小常出現的錯誤提示是“AttemptID:attempt_14267829456721_123456_m_000224_0 Timed out after 300 secsContainer killed by the ApplicationMaster.”。

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