我仔细阅读了权威指南和网络上的其他一些链接,包括here
我的问题是
洗牌和分拣到底发生了什么?
根据我的理解,它们发生在映射器和缩减器上。但是有些链接提到了在映射器上进行重排并在减速器上进行排序。
有人可以确认我的理解是否正确;如果没有,他们可以提供我可以通过的其他文件吗?
答案 0 :(得分:7)
<强>随机强>
MapReduce保证每个reducer的输入按键排序。系统执行排序和const&
的过程称为shuffle。
<强>类别:强>
排序发生在MapReduce程序的各个阶段,因此可以存在于Map和Reduce阶段。
请看一下这个图表
在Map和Reduce阶段为上面的图片添加更多描述。
地图方:
当map函数开始产生输出时,它不会简单地写入磁盘。在Map输出写入磁盘之前,线程首先transfers map outputs to the reducers as inputs
它们最终将被发送到。在每个分区中,divides the data into partitions corresponding to the reducers
。
减少方面:
当复制了所有地图输出后,reduce任务进入排序阶段(应该正确地称为合并阶段,因为排序是在地图侧执行的),它合并了地图输出,维护它们排序。这将在几轮中完成。
来源:Hadoop权威指南。