我的理解是,在mapreduce编程模型中我们有map和reduce两个阶段。完成映射阶段后,生成中间(键,值)值,并将这些值传递给reducer。
我怀疑map()阶段之后会出现洗牌和排序。所以,我觉得shuffle和sort是reducer阶段的一部分,对吗?
如果是这样的话,combiner()是如何工作的?
实际上,map/reduce有三个阶段:
- 洗牌,像
洗牌,Sort是一个框架阶段(作为开发人员,您只编写map和reduce函数的代码),它允许map任务和reduce阶段之间的通信。
组合器是一个可选阶段,可以在reduce阶段之前使用它来总结map阶段的输出,这样reduce阶段的作业就会减少。查看更多信息:http://www.tutorialspoint.com/map_reduce/map_reduce_combiners.htm
参见map/reduce架构的概述:https://developer.yahoo.com/hadoop/tutorial/module4.html#dataflow