hadoop 源码分析

 

先贴一张hadoop的部分类图

hadoop 源码分析

 

如图所示,组要的过程都在LocalJobRunable的内部类Job中,主要当然是map/reduce(MapTask和ReduceTask)。

 

1.TaskSplitMetaInfo 把job分解为几个task,并返回task头信息

 

2.MapTask中 

 

    计算map task数量

    运行map --  遍历执行task 将mapper循环给context

                      结束map之后,统一执行quickSort

 

3.进入reduce准备 -- 将map的输出转为reduce的输入copy file

                              对输入进行排序sort file(小文件优先在前)

 

4.运行reduce -- 循环遍历调用reduce,并在遍历valueIterator的时候,调用GroupComparator决定iterator的                                hasnext方法的返回,决定哪些key在一起,给同一个reduce