mapreduce的执行过程

Posted 3池

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mapreduce的执行过程相关的知识,希望对你有一定的参考价值。

1.首先是map获取分片,分片的大小和分片规则取决于文件输入的格式,FileInputFormat是输入格式的一个基类,FileInputFormat下有几个重要的子类,分别是TextInputFormat,KeyValueTextInputFormat,NLineInputFormat等等,使用什么输入格式决定分片的分片大小和规则,以及map的处理方式。map处理完后有必要就进行分区,分区是为了在不同的reduce处理数据,有负载均衡的作用,使用几个reduce取决于Hadoop集群的性能。默认的分区方式是对key的hash值与reduce个数进行取模,reduce默认数为1个,分区之后就是分组,默认的分组也是根据key进行分组,当需要在分区的基础上继续进行细分的话,就可以使用分组,同一个分组的数据同时进入一个reduce,分组之后就是排序,排序是在分组的组里进行排序的,默认的排序规则也是根据key进行排序的。之后就是combiner,combiner必须在所有map执行完才能执行,Combiner作用是合并相同的key对应的value,combiner的作用1是减少map写入到磁盘的文件大小(磁盘io),作用2是减少reduce和map节点之间的io输出量(网络io)。combiner一般是直接使用reduce的方法。

reduce阶段:reduce会根据分区去相应的节点复制数据,在进行排序之后进入reduce进行处理,之后数据输出。

以上是关于mapreduce的执行过程的主要内容,如果未能解决你的问题,请参考以下文章

MapReduce的原理及执行过程

Hadoop MapReduce执行过程详解(带hadoop例子)

MapReduce 学习6 ---- hadoop2提交到Yarn: Mapreduce执行过程分析

Hadoop中MapReduce的执行过程

mapreduce的执行过程

hadoop之MapReducer作业的提交执行过程