MapReduce 详细流程图总结
1.mapreduce阶段
- map阶段
- shuffle阶段
- reduce阶段
其中shuffle阶段,俗称奇迹发生的地方,主要是做了多次的分区和排序,并且对中间数据做了落地磁盘的处理,确保了数据安全,同时数据能够按照key进行划分,并且按照key排序。
2.mapreduce详细流程图

3.mapreduce思想总结
- 分布式计算其实就一个思路,如何让程序由多台计算机并行处理
- 程序是由数据+代码组成,这时候顺其自然的,将数据进行划分,将代码流程进行划分。这样每台计算机处理自己部分数据,每台计算机执行自己的步骤。就可以达到分布式计算的目的。
- mapreduce的整体思路也是如此,数据切割为多份,代码流程划分为2的大的步骤,map阶段可以由多台计算机并行执行,分别处理自己部分的数据并进行转换。reduce部分也是如此,每台计算机处理自己部分数据,并进行聚合
- 思路很重要,但最终落地到代码也是关键。
- 针对大量数据处理,在shuffle阶段,每个执行maptask的节点计算机都在内存中创建了一个环形缓冲区,所有数据以key value形式存入时,都会根据key进行分区和排序,当数据结束或者触发环形缓冲区的溢出操作时,这些分好区和排好序的数据就会被溢写到临时文件中。在文件中也会进行分区和排序
- 一个maptask处理的数据可能会超过80MB,这时候溢写出的临时文件可能就会由多份,所以会有一步操作,把同一个mapt

本文详细总结了MapReduce的三个阶段:map、shuffle和reduce,重点介绍了shuffle阶段的数据分区、排序和落地处理。此外,阐述了MapReduce分布式计算的思想,即通过数据和代码的划分实现并行处理。在shuffle阶段,每个map任务会在内存中创建环形缓冲区,数据按key分区排序后溢写到临时文件,最终经过合并、分区和排序,为reduce任务提供有序数据进行聚合操作。
最低0.47元/天 解锁文章
1267





