2016-08-25 34 views
0

我的理解是,在mapreduce编程模型中,我们有map和reduce两个阶段。完成映射阶段后,会生成中间(键,值)值,并将这些值传递给减速器。shuffle和sort阶段是map还是reduce阶段?

我的疑问是在map()阶段之后,洗牌和排序就会到来。所以,我觉得洗牌和排序是还原阶段的一部分,这是真的吗?

如果是这种情况combiner()如何工作?

回答

1

事实上,存在地图三相/减少:

  1. 地图
  2. 洗牌&排序
  3. 减少

洗牌&排序是一个框架,仅相(如一个开发人员,您只编码地图和缩减功能),它们允许地图任务和缩小阶段之间的通信。

组合器是可选阶段,可以在缩小阶段之前使用,以汇总映射阶段的输出,因此减少阶段的作业将减少。在这里看到更多的信息:http://www.tutorialspoint.com/map_reduce/map_reduce_combiners.htm

另请查看本概述/减少建筑:https://developer.yahoo.com/hadoop/tutorial/module4.html#dataflow