當我們寫完一個MR程序之後,我們希望能夠加快程序的執行速度,那麼怎麼進行性能的調優呢,有如下幾種方法?
1、mapper的數量
適當調整mapper的數量,使得每個mapper的運行時間在1分鐘爲宜。因爲mapper數量過小,則會導致整體速度過慢。太多則導致文件的尋址開銷,以及namenode和datanode的交互更加頻繁。
2、reducer的數量
集羣中reducer的數量應該略少於reducer的任務槽數。這將使reducer能夠在同一個週期完成。充分利用集羣。
3、combiner
合理的利用combiner,減少中間mapper —> reducer過程中數據的傳輸數量。
4、中間值的壓縮
將mapper的輸出進行壓縮
5、shuffle
內存中的shuffle過程可以對內存的參數進行一些調整,以彌補性能的不足。