码迷,mamicode.com
首页 > 其他好文 > 详细

mapreduce的执行过程

时间:2017-08-18 17:12:32      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:需要   之间   text   排序   性能   重要   数据   格式   val   

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的执行过程

标签:需要   之间   text   排序   性能   重要   数据   格式   val   

原文地址:http://www.cnblogs.com/3chi/p/7390360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!