shuffle和排序mapreduce

eeq64g8w  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(430)

我通读了权威指南和网上的一些其他链接,包括这里的链接
我的问题是
洗牌和分类究竟发生在哪里?
据我所知,它们发生在Map器和还原器上。但有些链接提到,在Map器上进行洗牌,在还原器上进行排序。
有人能证实我的理解是否正确吗;如果没有,他们能提供额外的文件,我可以通过?

eqqqjvef

eqqqjvef1#

随机播放:
mapreduce保证每个reduce的输入都是按键排序的。系统执行排序和排序的过程 transfers map outputs to the reducers as inputs 被称为洗牌。
排序:
排序发生在mapreduce程序的各个阶段,因此可以存在于map和reduce阶段。
请看一下这个图表

在Map上增加更多的描述并减少相位。
Map方面:
当map函数开始产生输出时,它不是简单地写入磁盘。在Map输出写入磁盘之前,线程首先 divides the data into partitions corresponding to the reducers 他们最终会被送到。在每个分区中 background thread performs an in-memory sort by key .
还原侧:
复制完所有map输出后,reduce任务将进入排序阶段(由于排序是在map端执行的,因此应该正确地称为合并阶段),这将合并map输出,并保持它们的排序顺序。这将分两轮进行。
来源:hadoop权威指南。

相关问题