|
|
51CTO旗下网站
|
|
移动端

大数据核心框架MapReduce过程解析

首先MapReduce很明显是分为Map阶段和Reduce阶段。两个阶段分别做什么呢?小编自己画了个图,大家共勉一下,请看正文。

作者:架构师公社来源:今日头条|2019-08-14 17:13

首先MapReduce很明显是分为Map阶段和Reduce阶段。两个阶段分别做什么呢?

小编自己画了个图,大家共勉一下

大数据核心框架MapReduce过程解析

图中1-2过程为map过程,3为Reduce过程,接下来看一张专业图片,两张对比一起看

大数据核心框架MapReduce过程解析

在整个mapReduce过程包含很多复杂的处理过程,而我们要学习的就是其中几个过程包含,Split过程、Partitione过程还有Shuffle过程,举一个实例的话

假设我们手上有很多复杂数据,那么怎样来处理呢? 第一步就是分类,把数据分类。 分类后的数据就不复杂了,这就是异而化同。 分类之后数据还是很多,怎么办呢? 第二步,分割。 分割就是把数据切分成小块, 这样就可以并发或者批量处理了, 这就是大而化小。

回到 map-reduce概念上, map的工作就是切分数据,然后给他们分类,分类的方式就是输出key,value对,key就是对应“类别”了。 分类之后,reducer拿到的都是同类数据,这样处理就很容易了。

大数据一般采用的HDFS 解决了大数据存储的问题,那么 MapReduce 自然要解决的是数据计算问题在处理大数据计算中,一台机器是无法满足大批量数据计算的,这个时候就需要使用MapReduce,MapReduce是一种编程模型,用于大规模数据集的并行计算,需要将数据分配到大量的机器上计算,每台机器运行一个子计算任务,最后再合并每台机器运算结果并输出。 MapReduce 的思想就是 『分而治之』

MapReduce 将整个并行计算过程抽象到两个函数,在 Map 中进行数据的读取和预处理,之后将预处理的结果发送到 Reduce 中进行合并。一个简单的 MapReduce 程序只需要指定 map()、reduce()、 input 和output,剩下的事由框架完成。

Map ( 映射 ) : 对一些独立元素组成的列表的每一个元素进行指定的操作,可以高度并行。

Reduce( 化简 ) : 对一个列表的元素进行合并。

MapReduce执行流程

以经典的 WordCount 的例子来说明一下MapReduce的执行流程,WordCount就是统计每个单词出现的次数。

大数据核心框架MapReduce过程解析

MapReduce计算框架的一般流程有以下几个步骤:

输入 ( Input ) 和拆分 ( Split ):

对数据进行分片处理。将源文件内容分片成一系列的 InputSplit,每个 InputSplit 存储着对应分片的数据信息,记住是对文件内容进行分片,并不是将源文件拆分成多个小文件。

迭代 ( iteration ):

遍历输入数据,并将之解析成 key/value 对。拆分数据片经过格式化成键值对的格式,其中 key 为偏移量,value 是每一行的内容,这一步由MapReduce框架自动完成。

映射 ( Map ):

将输入 key/value 对映射 ( map ) 成另外一些 key/value 对。MapReduce 开始在机器上执行 map 程序,map 程序的具体实现由我们自己定义,对输入的 key/value 进行处理,输出新的 key/value,这也是hadoop 并行事实发挥作用的地方。

洗牌 ( Shuffer ) 过程:

依据 key 对中间数据进行分组 ( grouping )。这是一个洗牌的过程,得到map方法输出的 对后,Mapper 会将它们按照 key 值进行处理,这包括 sort (排序)、combiner (合并)、partition (分片) 等操作达到排序分组和均衡分配,得到 Mapper 的最终输出结果交给 Reducer。mapper 和 reducer 一般不在一个节点上,这就导致了reducer 需要从不同的节点上下载数据,经过处理后才能交给 reducer 处理。

归并( Reduce ):

以组为单位对数据进行归约 ( reduce )。Reducer 先对从 Mapper 接收的数据进行排序,再交由用户自定义的 reduce方法进行处理。

迭代:

将最终产生的 key/value 对保存到输出文件中。得到新的 对,保存到输出文件中,即保存在 HDFS 中。

【编辑推荐】

  1. Spark:超越Hadoop MapReduce
  2. 巧用MapReduce+HDFS,海量数据去重的五大策略
  3. MapReduce运行原理
  4. 从HDFS和MapReduce两方面了解Hadoop
【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

这就是5G

这就是5G

5G那些事儿
共15章 | armmay

58人订阅学习

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

349人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

723人订阅学习

读 书 +更多

游戏开发核心技术--剧本和角色创造

《游戏开发核心技术--剧本和角色创造》分“剧本”、“角色”和“游戏玩法”三部分,第一部分着重说明故事的历史、一般故事元素、传统故事设...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客