我的理解是,在mapreduce编程模型中,我们有map和reduce这两个阶段。在完成映射阶段后,将生成中间值(键,值),并将这些值传递给简化器。
我的疑问是在map()阶段之后,洗牌和排序会到来。所以,我觉得改组和排序是 reducer 阶段的一部分,对吗?
如果是这样的话,combiner()是如何工作的?
最佳答案
实际上,map / reduce分为三个阶段:
随机排序是一个仅框架的阶段(作为开发人员,您只需要对map和reduce函数进行编码),就可以在map任务和reduce阶段之间进行通信。
组合器阶段和可选阶段可以在reduce阶段之前使用,以对map阶段的输出求和,因此reduce阶段的工作将更少。在此处查看更多信息:http://www.tutorialspoint.com/map_reduce/map_reduce_combiners.htm
另请参见此 map /归约体系结构概述:https://developer.yahoo.com/hadoop/tutorial/module4.html#dataflow