对mapreduce进行随机播放和排序

red*_*red 8 hadoop mapreduce

我通读了权威指南和网上的其他一些链接,包括这里的链接

我的问题是

洗牌和分拣到底发生了什么?

根据我的理解,它们发生在映射器和缩减器上.但是有些链接提到了在映射器上进行重排并在减速器上进行排序.

有人可以确认我的理解是否正确; 如果没有,他们可以提供我可以通过的其他文件吗?

mrs*_*vas 7

洗牌:

MapReduce保证每个reducer的输入按键排序.系统执行排序的过程,transfers map outputs to the reducers as inputs称为shuffle.

分类:

排序发生在MapReduce程序的各个阶段,因此可以存在于Map和Reduce阶段.

请看一下这个图表 在此输入图像描述

在Map和Reduce阶段为上面的图像添加更多描述.

地图方面:

当map函数开始产生输出时,它不会简单地写入磁盘.在Map输出写入磁盘之前,线程首先divides the data into partitions corresponding to the reducers将最终发送到磁盘.在每个分区内,background thread performs an in-memory sort by key.

减少方面:

当复制了所有地图输出后,reduce任务进入排序阶段(应该正确地称为合并阶段,因为排序是在地图侧执行的),它合并地图输出,维护它们的排序顺序.这将在几轮完成.

来源:Hadoop权威指南.