map-reduce 中不同组件/动作的执行顺序
Posted
技术标签:
【中文标题】map-reduce 中不同组件/动作的执行顺序【英文标题】:order of execution of different components/actions in map-reduce 【发布时间】:2014-12-19 06:35:08 【问题描述】:map-reduce 中动作/组件的执行顺序是什么 - Mapper --> Combiner --> Shuffle/Sorting --> Partitioner --> Reducer
顺序一样吗??
【问题讨论】:
【参考方案1】:
该过程几乎是正确的,但让我们深入了解它。
第一个 Map 阶段将从运行 map
开始。
一旦map
处理输入,它会在保存到本地文件系统之前进行排序,
称为sort
,然后将copy
复制到本地文件系统,接下来此数据将复制到reducer
,即shuffle
阶段。
由于数据已经在每个映射器输出中排序,因此它通过每个到达减速器所在节点的键执行merge sort
。
一旦合并完成,数据就可以进入reduce阶段了。这取决于您选择的手动配置。
我们也可以将减速器的数量设置为零。在这种情况下,map
的所有输出都将直接写入本地文件系统或 hdfs 的输出路径。
希望对你有帮助!
【讨论】:
非常感谢,这完美地解释了答案:)以上是关于map-reduce 中不同组件/动作的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章
Stream forEachOrdered() vs forEach()
Stream forEachOrdered() vs forEach()
Stream forEachOrdered() vs forEach()