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