2016-03-07 69 views
0

我有一個普遍的疑問。在並行計算大量密鑰(大約2900萬)的mapreduce中計算總和時,我的工作大約需要20分鐘才能在10個具有2 GB RAM和40 GB硬盤的節點集羣中運行。我已經在我的代碼中實現了組合器。在MapReduce中查找總和

我可以在集羣中調整以改善性能的常規設置是什麼?就像我應該什麼時候增加mapper或reducer的內存?何時增加容器的尺寸?何時調整「reduce.shuffle.input.buffer.percent」值?

如果我可以對某些情況有一定的瞭解,當我應該進行上述哪些設置時,這將非常有幫助。我瀏覽過各種博客,但這些信息對我來說有點模糊。

回答

0

正弦你有10個數據節點和數百萬個密鑰,你必須使用足夠的地圖任務。如果您使用的是單減速器,請嘗試增加減速器數量 - > job.SetNumReducerTasks(anyNumber)。這將利用並行處理。