更新時間:2022-04-13 來源:黑馬程序員 瀏覽量:
1.數據輸入
在執(zhí)行MapReduce任務前,將小文件進行合并,大量的小文件會產生大量的map任務,增大map任務裝載的次數,而任務的裝載比較耗時,從而導致MapReudce運行速度較慢。因此采用CombineTextInputFormat來作為輸入,解決輸入端大量的小文件場景。
2.Map階段
(1)減少溢寫(spill)次數:通過調整io.sort.mb及sort.spill.percent參數值,增大觸發(fā)spill的內存上限,減少spill次數,從而減少磁盤I/O。
(2)減少合并(merge)次數:通過調整io.sort.factor參數,增大merge的文件數目,減少merge的次數,從而縮短mr處理時間。
(3)在map之后,不影響業(yè)務邏輯前提下,先進行combine處理,減少I/O。
上面提到的那些屬性參數,都是位于mapred-default.xml文件中,這些屬性參數的調優(yōu)方式如表4-1所示。
表4-1 Map階段調優(yōu)屬性