map:
1、inputformat对输入文件做逻辑切分,生成List<InputSplit>
2、InputSplit描述了切片的大小、位置
3、RecordReader将InputSplit分为key/value pairs输入Mapper
4、执行map方法
5、转为字节数组写入到内存缓冲区。 当达到容量的80%时,
启动一个新线程将内存缓冲区中的内容排序、归并,如果设置了combiner,要进行combine操作。并写入到本地磁盘。
写入与写出互不影响。
6、至少会生成一个溢写文件,将所有的文件合并,排序、归并,如果设置了combiner,要进行combine操作。生成一个大文件,通知MRAPPMaster已完成。
reduce:
7、reducer端到Mapper端拉取数据,写入到内存缓冲区中,溢写操作类似map端的过程,生成一个最终文件。
8、执行reduce方法,
9、写出到输出文件中
MapReduce执行流程
最新推荐文章于 2024-03-15 22:25:07 发布