摘要:
看了许久的代码,把map的流程熟悉了下,不追求最准确的理解,记录下来以免忘记。 对于JobTracker和TaskTracker等大层面有控制和通讯的代码暂时不表 map过程俗气的先上一个图:map这一端基本是这样的流程:input split分解成map个数量的部分输入==》RecordReader分解成Mapper需要的(key,value)记录==》执行map方法==》执行的结果起初在内存当中==》当内存记录过多的时候spill到硬盘上面,如果有分区(Partitioner的话),spill的文件会记录分区的信息,单个spill文件首先按分区排序,然后按key排序==》如果有多个spi. 阅读全文