MapReduce中Reducer與reduce的關係

同一個Reducer可能會接收多個key的記錄,但是同一個key的記錄會在一個單獨的reduce中處理,因此就涉及到參數的作用域的問題。

有時候我們會在Reducer中初始化一些公共參數(可以在setup中初始化),然後在reduce中使用。要注意,這些公共參數是所有reduce共有的,如果不注意比較容易出錯,例如對一個int型變量施加自加或者自減操作,常常以爲是從0開始操作的,其實它在其他key的reduce中已經被操作過了,因此初始值不一定是0了。

所以我們在用完公共參數時,要恢復其初始狀態(除非是要與整個Reducer狀態相關的參數),或者我們將與全局Reducer非相關的參數在reduce中定義。

發佈了26 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章