MapReduce执行过程

在研究hadoop之前,有必要将hadoop两个核心技术HDFS和MapReduce了解一下,做好的资料当然就是google的两篇论文了。现将Hadoop中MapReduce的执行流程总结如下:

用户提交的称为Job,每个Job会被切分成很多数据集,每个数据集作为Map的输入,称为一个task。

InputFormat将输入的数据集切割成小数据集 InputSplits, 每一个 InputSplit 将由一个 Mapper 负责处理。此外 InputFormat 中还提供一个 RecordReader 的实现, RecordReader 将一个 InputSplit 解析成 <key,value> 对,有了<k,v>,就可以开始做map操作了。

Map后会产生很多中间结果,先对这些结果按照key值排序,这时可以利用用户提供的combiner函数将中间结果进行一次合并。之后这些中间结果会被分区函数分为R个区域,分区函数可以是类似于hash(key) mod R这样处理,这样会将具有相同key值的数据聚集到一起。在reduce之前会有一个merge操作,将具有相同key值的value合并成一个list,形成<key, list<value> >的形式,这就是这个过程就是混洗(Shuffle)和排序(sort)的过程。

上面通过Shuffle和sort后得到的<key, (list<value>)>会送到Reducer. reduce方法中处理,输出的结果通过OutputFormat,输出到DFS中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值