Hadoop之 MapReduce的原理简介

近来由于工作的需要,以前学过的Hadoop又重新回顾了一遍,为以后更好的了解,特写下该文章,以留作笔记,深知操作猛如虎,先从概念来讲起。

流程简介:

1.重写 JobConfigurable.configure(JobConf)方法,这个方法需要传递一个JobConf参数<JobConf 描述Map/Reduce如何执行的主要接口>,目的是完成Mapper的任务初始化工作;

2.之后框架使用IputSplit对每个键值对调用一次 map(WritableComparable, Writable, OutputCollector, Reporter)操作;

3.因为数据在hadoop上是以块为单位存储的,所以使用Partitioner控制map输出结果key的分割,产生一个个分区,分区的数目与一个作业的reduce任务的数目是一样的;

4.map已经将数据分组排好之后,shuffle为每个Reducer获得所有Mapper输出中与之相关的分块;sort按照key的值对Reducer的输入进行分组 ;

Shuffle和Sort两个阶段是同时进行的,map的输出也是一边被取回一边被合并的;

5.对每个输入键值对调用一次 reduce(WritableComparable, Iterator, OutputCollector, Reporter)方法,Reduce任务的输出通常是通过调用 OutputCollector.collect(WritableComparable, Writable)写入 文件系统的。

6.Reporter报告进度,设定应用程序级别的状态消息,更新Counters(计数器), 表明进程正常;

总结: map对数据组进行分组排序,均匀分布到每个数据节点,之后reducer调用计算任务程序,并将最终的计算结果输出;


各位看客,如果发现有何描述不准确的,定要指出哦,相互学习,个人博客https://www.onexing.cn

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

相关阅读更多精彩内容

友情链接更多精彩内容