MapReduce执行流程及示例
MapReduce是分布式计算框架,由Google提出,主要用于解决海量数据的计算问题。
MapReduce运行的时候,会通过Mapper运行的任务读取HDFS中的数据文件,然后调用自己的方法,处理数据,最后输出。Reducer任务会接收Mapper任务输出的数据,作为自己的输入数据,调搏携用自己的方法,最后输出到HDFS的文件中。整个流程如图:
每个Mapper任务是一个java进程,它会读取基凳伏HDFS中的文件,解析成很多的键值对,经过我们覆盖的map方法处理后,转换为很多的键值对再输出。整个Mapper任务的处理过程又可以分为以下几个阶段,如图所示粗扒:
每个Reducer任务是一个java进程。Reducer任务接收Mapper任务的输出,归约处理后写入到HDFS中,可以分为如下图所示的几个阶段。
shuffle阶段是指从Map结束到Reduce开始之间的过程 。从下这张图中可以了解shuffle所处的位置。
-----------------------分------------------割----------------线-------------------------
Map端
假设只有一个分区(只有一个Reduce任务)
2024-08-19 广告