MapReduce程序的优化
MapReduce程序的優(yōu)化主要集中在兩個(gè)方面:一個(gè)是運(yùn)算性能方面的優(yōu)化;另一個(gè)是IO操作方面的優(yōu)化。
具體體現(xiàn)在以下的幾個(gè)環(huán)節(jié)之上:
1. 任務(wù)調(diào)度
a. 盡量選擇空閑節(jié)點(diǎn)進(jìn)行計(jì)算
b. 盡量把任務(wù)分配給InputSplit所在機(jī)器
?
2. 數(shù)據(jù)預(yù)處理與InputSplit的大小
盡量處理少量的大數(shù)據(jù);而不是大量的小數(shù)據(jù)。因此可以在處理前對(duì)數(shù)據(jù)進(jìn)行一次預(yù)處理,將數(shù)據(jù)進(jìn)行合并。
如果自己懶得合并,可以參考使用CombineFileInputFormat函數(shù)。具體用法請(qǐng)查閱相關(guān)函數(shù)手冊(cè)。
?
3. Map和Reduce任務(wù)的數(shù)量
Map任務(wù)槽中任務(wù)的數(shù)量需要參考Map的運(yùn)行時(shí)間,而Reduce任務(wù)的數(shù)量則只需要參考Map槽中的任務(wù)數(shù),一般是0.95或1.75倍。
?
4. 使用Combine函數(shù)
該函數(shù)用于合并本地的數(shù)據(jù),可以大大減少網(wǎng)絡(luò)消耗。具體請(qǐng)參考函數(shù)手冊(cè)。
?
5. 壓縮
可以對(duì)一些中間數(shù)據(jù)進(jìn)行壓縮處理,達(dá)到減少網(wǎng)絡(luò)消耗的目的。
?
6. 自定義comparator
可以自定義數(shù)據(jù)類型實(shí)現(xiàn)更復(fù)雜的目的。
?
轉(zhuǎn)載:http://www.cnblogs.com/muchen/
轉(zhuǎn)載于:https://www.cnblogs.com/dtdx-xiangyang/articles/7101970.html
總結(jié)
以上是生活随笔為你收集整理的MapReduce程序的优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的同步Socket程序服务端
- 下一篇: 7.2