好文档 - 专业文书写作范文服务资料分享网站

大数据系列之计算框架MapReduce

天下 分享 时间: 加入收藏 我要投稿 点赞

CDA数据分析师(CDA.cn)——真本事,心舒适

大数据系列之计算框架MapReduce

1、MapReduce计算框架简介

Mapreduce 是hadoop项目中的分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架,Mapreduce 程序本质上是并行运行的。分布式程序运行在大规模计算机集群上,可以并行执行大规模数据处理任务,从而获得巨大的计算能力。谷歌公司最先提出了分布式并行编程模型MapReduce,Hadoop MapReduce是它的开源实现。

Hadoop发展到现在已经有三代了(这里的代指的是软件版本号后的第一位数字,如我们用的版本为2.7.5 就是指第二代,第二代可以表示为hadoop2.x或hadoop2,一代表示为hadoop1或hadoop1.x),目前主流的是hadoop2,与之对应的就是mapreduce2。下图为hadoop1平台与hadoop2平台的对比。可以看到hadoop1中平台和计算框架是一体的,对于一个集群只能有一个计算框架,而在hadoop2中平台(资源管理yarn)与计算框架是分离出来的,这样一个平台就可以对应多个计算框架了比如可以在运行MapReduce的时候还可以运行spark等计算框架。

CDA数据分析师(CDA.cn)——真本事,心舒适

2、MapReduce运行原理

核心思想是移动计算(代码)的成本低于移动数据的成本,所以只移动计算不移动数据。 MapReduce过程大致分两个阶段,map阶段和reduce阶段,每个阶段都以键值对作为输入与输出,其具体的类型由代码决定,代码中需要给出map与reduce函数的具体实现 高度并行的map阶段

在这个阶段, 输入数据被split为离散的块,可以被分别/并行处理

在map阶段, 通常执行输入格式解析、 投影(选择相关的字段)和过滤(删除不感兴趣的记录) reduce阶段

一个聚合或汇总的阶段。 在这个阶段, map阶段的输出被聚合以产生期望的结果,所有相关的记录(record)必须被集中在一起由一个单一的实例处理。

CDA数据分析师(CDA.cn)——真本事,心舒适

其实在map函数与reduce函数之间还有个shuffle过程,比较复杂我们在下章讲解。

3、MapReduce的优缺点

MapReduce的优点:

易于编程;

良好的扩展性;

高容错性;

适合PB级别以上的大数据的分布式离线批处理。

MapReduce的缺点:

CDA数据分析师(CDA.cn)——真本事,心舒适

难以实时计算(MapReduce处理的是存储在本地磁盘上的离线数据)

不能流式计算(MapReduce设计处理的数据源是静态的)

难以DAG计算(有向无环图计算,由于多个任务存在依赖关系,后一个应用的输入是前一个应用的输出。解决这一问题的方式有Apache的Tez计算框架,它是基于hadoop Yarn之上的DAG计算框架,它将MapReduce任务分解为多个子任务同时可以把多个Map/ Reduce任务合并成一个大的DAG任务,这样当前一个任务完成之后,直接将结果输出给下一个任务,不用将结果写到磁盘之上,减少了Map/Reduce之间的文件存储。同时合理的组合其子过程,减少了任务的运行时间。)。

大数据系列之计算框架MapReduce

CDA数据分析师(CDA.cn)——真本事,心舒适大数据系列之计算框架MapReduce1、MapReduce计算框架简介Mapreduce是hadoop项目中的分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架,Mapreduce程序本质上是并行运行的。分布式程序运行在大规模计算机集群上,可
推荐度:
点击下载文档文档为doc格式
6qok2566ln0wk4t3v4f03ibqw7s1q700ti8
领取福利

微信扫码领取福利

微信扫码分享