Hadoop樣例代碼中的wordcount使用了combiner。
但對於map的輸出形式與reduce輸出形式不一樣的應用,直接使用reduce函數進行combiner會出錯。
因此,必須自己重寫combiner。
在撰寫含有combiner的應用時,需注意,對於所有Map的輸出,並非一定都經過combiner步驟,可能直接的讀寫就進入了reduce。
而且combiner雖然能減少IO,但是會增加Map時間(等於多做了一次reduce),能否提高總體性能要看實際情況而定。
Hadoop樣例代碼中的wordcount使用了combiner。
但對於map的輸出形式與reduce輸出形式不一樣的應用,直接使用reduce函數進行combiner會出錯。
因此,必須自己重寫combiner。
在撰寫含有combiner的應用時,需注意,對於所有Map的輸出,並非一定都經過combiner步驟,可能直接的讀寫就進入了reduce。
而且combiner雖然能減少IO,但是會增加Map時間(等於多做了一次reduce),能否提高總體性能要看實際情況而定。