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