2018-10-20
閱讀量:
987
如何設(shè)置reduce的個數(shù)?
reduce在運行時往往需要從相關(guān)map端復(fù)制數(shù)據(jù)到reduce節(jié)點來處理,因此相比于map任務(wù),reduce節(jié)點資源是相對比較缺少的,同時相對運行較慢。
正確的reduce任務(wù)的個數(shù)應(yīng)該是0.95或者1.75 *(節(jié)點數(shù) ×mapred.tasktracker.tasks.maximum參數(shù)值)。如果任務(wù)數(shù)是節(jié)點個數(shù)的0.95倍,那么所有的reduce任務(wù)能夠在 map任務(wù)的輸出傳輸結(jié)束后同時開始運行。如果任務(wù)數(shù)是節(jié)點個數(shù)的1.75倍,那么高速的節(jié)點會在完成他們第一批reduce任務(wù)計算之后開始計算第二批 reduce任務(wù),這樣的情況更有利于負(fù)載均衡。同時需要注意增加reduce的數(shù)量雖然會增加系統(tǒng)的資源開銷,但是可以改善負(fù)載勻衡,降低任務(wù)失敗帶來的負(fù)面影響。同樣,Reduce任務(wù)也能夠與 map任務(wù)一樣,通過設(shè)定JobConf 的conf.setNumReduceTasks(int num)方法來增加任務(wù)個數(shù)。






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
1條評論
0條評論
0條評論