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

我的疑问是在map()阶段之后,洗牌和排序会到来。所以,我觉得改组和排序是 reducer 阶段的一部分,对吗?

如果是这样的话,combiner()是如何工作的?

最佳答案

实际上,map / reduce分为三个阶段:

  • map
  • 随机播放并排序
  • 减少

  • 随机排序是一个仅框架的阶段(作为开发人员,您只需要对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

    10-07 19:00
    查看更多