Hadoop面試題總結(五)- 優化

一、MapReduce跑得慢的緣由?

Mapreduce 程序效率的瓶頸在於兩點:html

1)計算機性能網絡

CPU、內存、磁盤健康、網絡ide

2)I/O 操做優化性能

(1)數據傾斜優化

(2)map和reduce數設置不合理orm

(3)reduce等待太久htm

(4)小文件過多內存

(5)大量的不可分塊的超大文件it

(6)spill次數過多io

(7)merge次數過多等

二、MapReduce優化方法

1)數據輸入

(1)合併小文件:在執行mr任務前將小文件進行合併,大量的小文件會產生大量的map任務,增大map任務裝載次數,而任務的裝載比較耗時,從而致使mr運行較慢。

(2)採用ConbinFileInputFormat來做爲輸入,解決輸入端大量小文件場景。

2)map階段

(1)減小spill次數:經過調整io.sort.mb及sort.spill.percent參數值,增大觸發spill的內存上限,減小spill次數,從而減小磁盤 IO。

(2)減小merge次數:經過調整io.sort.factor參數,增大merge的文件數目,減小merge的次數,從而縮短mr處理時間。

(3)在 map 以後先進行combine處理,減小I/O。

3

相關文章
相關標籤/搜索