MapReduce的执行原理

1、框架会把输入文件(夹)划分为很多InputSplit,默认每个HDFS的Block对应一个InputSplit。通过RecordReader类,会把每一个InputSplit解析成一个个<k1,v1>。默认每一行数据会被解析成一个<k1,v1>

2、框架调用Mapper类的map(...)函数,map函数的输入是<k1,v1>,输出是<k2,v2>,一个InputSplit对应一个Map Task

3、框架调用map函数输出的<k2,v2>进行分区。不同分区中的<k2,v2>由不同的Reduce Task处理,默认只有一个分区

4、框架对每个分区中的数据,按照k2进行排序和分组。分组是指相同的k2和v2分成一组

5、在Map阶段,框架可以执行Combiner操作

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容