Hadoop maptask 工作机制

工作机制

  1. Read阶段:MapTask通过RecordReader解析输入InputSplit中的key/value。
  2. Map阶段:用户编写的map()函数处理key/value,生成新的key/value。
  3. Collect阶段:map()函数处理完成后,调用OutputCollector.collect()输出结果,生成的key/value被分区并写入环形内存缓冲区。
  4. Spill阶段:环形缓冲区满后,数据经过排序和可能的合并、压缩后写入本地磁盘的临时文件。此阶段包括:
    • 利用快速排序算法对数据进行排序,先按分区编号Partition排序,再按key排序。
    • 按分区编号将数据写入临时文件output/spillN.out。
    • 将分区数据的元信息写入内存索引数据结构SpillRecord。
  5. Merge阶段:所有数据处理完成后,MapTask将所有临时文件合并成一个大文件,保存到文件output/file.out中,并生成相应的索引文件output/file.out.index。


请使用浏览器的分享功能分享到微信等