第一代 map reduce 原理简析。网络
不废话,上图。框架
上图为第一代map reduce原理图。左侧为map阶段,右侧为reduce阶段。函数
map和reduce各为一个进程。优化
先看左侧map阶段:spa
map的数据存在于HDFS中,通过input format后,读入缓冲区,利用溢写机制不断将缓冲区中的数据写到磁盘上。当全部数据都写到磁盘上后,会进行一次merge合并,merge期间会进行排序。所以merge后的数据是有序的数据。
下面详细说下map各个阶段:线程
InputFormat:它是MR的基础框架之一。主要有两个做用:数据分割split以及记录读取器。code
map部分大概这么多,咱们常说的shuffle阶段,包括:partition、sort、spill、merge、combiner、copy、memory、disk...常常状况下,进行优化的部分就是shuffle阶段。orm
再看看右侧reduce阶段:blog
reduce阶段相对来讲简单些。排序
下面有几个小点:
在map reduce1.0中,由两个重要进程:
JobTracker:主进程。
TaskTracker:任务进程。
mapreduce做业调度默认采用先进先出队列调度模式(FIFO):