我的理解是,在mapreduce编程模型中,map和reduce是两个阶段。完成Map阶段后,将生成中间值(键、值),并将这些值传递给减速器。我的疑问是在map()阶段之后,洗牌和排序会出现。所以,我觉得shuffle和sort是reducer阶段的一部分,是真的吗?如果是这样,combiner()是如何工作的?
8dtrkrch1#
事实上,map/reduce有三个阶段:Map无序排序(&S)减少shuffle&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
1条答案
按热度按时间8dtrkrch1#
事实上,map/reduce有三个阶段:
Map
无序排序(&S)
减少
shuffle&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