分享

请教一个问题,关于mapreduce的shuffle过程

找了一些资料,说mapreduce的collect的时候就是为每个key/value键值对生成对应的分区号,并保存下来。
我的疑问是,假设有这么中情况,一个map中包含两个不同的分区号的键值对,分别对应两个reducer,
reducer是拉取map整个生成的文件呢?还是只拉取对应分区的键值对记录?
如图。
拉取对应分区的记录.jpg
拉取整个文件.jpg

已有(6)人评论

跳转到指定楼层
pengsuyun 发表于 2015-1-30 08:31:55
desehawk 发表于 2015-1-29 18:19
map处理完毕之后,就输出了,个人认为是拉取自己关心的内容。不相关的不会去拉取

版主看看这张图,我想是可以说明些问题。

这张图应该可以说明只拉取自己关系的数据.jpg
回复

使用道具 举报

desehawk 发表于 2015-1-29 18:19:47
map处理完毕之后,就输出了,个人认为是拉取自己关心的内容。不相关的不会去拉取
回复

使用道具 举报

continue 发表于 2015-1-29 21:36:54
我觉得reduce是要在map完成后再去拉取数据。而且在拉取的时候,是拉取的整个map数据,map输出的数据格式是 <key,{value1,value2...}>,在聚合生成分区号之前以及之后都有一次排序。这仅仅是我的个人观点
回复

使用道具 举报

desehawk 发表于 2015-1-30 09:32:27
pengsuyun 发表于 2015-1-30 08:31
版主看看这张图,我想是可以说明些问题。

赞同,map输出之后,会被不同的reduce拉取
回复

使用道具 举报

gwgyk 发表于 2015-3-12 11:20:23
应该是拉取对应分区的键值对记录,否则的话,partition又有什么意义呢?
回复

使用道具 举报

蒲公英的梦想 发表于 2015-3-30 00:46:43
拉去对应分区的内容,在map正在运行的时候reduce已经开始运行(reduce在map运行之后多长时间运行可以在mapred-site.xml进行配置)。可参考此片文章:http://blog.163.com/songyalong11 ... 1897201410710401077
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条