论坛首页 Java企业应用论坛

mapreduce的原理详解

浏览 5477 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-06  

接前一篇博客

以前的文章中有关于mapreduce的工作原理:http://p-x1984.iteye.com/blog/702486

记住一点:Map的输出既是Reduce的输入。即:

Map:<k1,v1> ->list<k2,v2>

Reduce:<k2,list<v2>> -><k3,v3>

1) 在启动map函数前,需要对输入文件进行“分片”,也就是把所要输入的文件copy到HDFS中。
2) 在分片结束后,启动job就开始读取HDFS中的内容了,map对每条记录的输出以<key,value> pair的形式输出。
3) 在进入reduce阶段之前,还要将各个map中相关的数据(key相同的数据)进过洗牌,排序,reduce,归结到一起,发往一个reducer。
4) 进入reduce阶段。相同的key的map输出会到达同一个reducer,reducer对key相同的多个value进行“reduce操作”.

大家如果有兴趣的可以和我一起讨论!

   发表时间:2011-01-07  
是在客户端先分好片,然后将分片信息上传到hdfs,然后jobtracker拿到分片信息,来分配map,reduct task的。
0 请登录后投票
   发表时间:2011-01-07  
多谢提醒!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics