當前位置:編程學習大全網 - 編程軟體 - 如何優化mapreduce job的運行效率

如何優化mapreduce job的運行效率

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

可以自定義數據類型實現更復雜的目的。

  • 上一篇:程序員接到項目後應該怎麽做
  • 下一篇:求尤克裏裏新年好獨奏簡譜
  • copyright 2024編程學習大全網