MapReduce流程简单解析

 1、MapReduce简介

源自于google的MapReduce论文,发表于2004年12月,HadoopMapReduce是google MapReduce 克隆版。MapReduce是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。



MapReduce工作流程图

2、MapReduce主要步骤叙述

Map阶段:

Step 1:读取输入文件的内容,并解析成键值对(<key, value>)的形式,输入文件中的每一行被解析成一个<key, value>对,每个<key, value>对调用一次map()函数。

Step 2:用户写map()函数,对输入的<key,value>对进行处理,并输出新的<key,value>对。

Step 3:对Step 2中得到的<key,value>进行分区操作。

Step 4:不同分区的数据,按照key值进行排序和分组,具有相同key值的value则放到同一个集合中。

Step 5(可选):分组后的数据进行规约。

Reduce阶段:

Step 1:对于多个map任务的输出,按照不同的分区,通过网络传输到不同的Reduce节点。

Step 2:对多个map任务的输出结果进行合并、排序,用户书写reduce函数,对输入的key、value进行处理,得到新的key、value输出结果。

Step 3:将reduce的输出结果保存在文件中。


3、MapReduce的输入输出

   从第2点MapReduce的处理流程步骤可以看出,MapReduce框架运转在<key,value>键值对上。也就是说作业的输入输出都是<keey,value>键值对,中间的各种处理也都是对键值对进行处理。

一个MapReduce作业的输入和输出类型如下图所示:可以看出在整个流程中,会有三种不同的<key,value>键值对类型的存在。


4、MapReduce的具体处理流程

以最经典的WordCount单词计数为例来介绍Map/Reduce阶段具体的处理步骤。

WordCount:统计所有文件中每个单词出现的次数,效果如下图



(1)    Map任务处理:本次处理中有两个Map任务,以其中一个为例


(2)   Reduce任务处理



  • 7
    点赞
  • 9
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

yuzhuzhong

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值