MapReduce中Reducer与reduce的关系

同一个Reducer可能会接收多个key的记录,但是同一个key的记录会在一个单独的reduce中处理,因此就涉及到参数的作用域的问题。

有时候我们会在Reducer中初始化一些公共参数(可以在setup中初始化),然后在reduce中使用。要注意,这些公共参数是所有reduce共有的,如果不注意比较容易出错,例如对一个int型变量施加自加或者自减操作,常常以为是从0开始操作的,其实它在其他key的reduce中已经被操作过了,因此初始值不一定是0了。

所以我们在用完公共参数时,要恢复其初始状态(除非是要与整个Reducer状态相关的参数),或者我们将与全局Reducer非相关的参数在reduce中定义。

发布了26 篇原创文章 · 获赞 4 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章