我通读了权威指南和网上的其他一些链接,包括这里的链接
我的问题是
洗牌和分拣到底发生了什么?
根据我的理解,它们发生在映射器和缩减器上.但是有些链接提到了在映射器上进行重排并在减速器上进行排序.
有人可以确认我的理解是否正确; 如果没有,他们可以提供我可以通过的其他文件吗?
洗牌:
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权威指南.
| 归档时间: |
|
| 查看次数: |
4519 次 |
| 最近记录: |