当前位置: 首页>前端>正文

用MapReduce分析数据集 mapreduce对数据处理的流程

一   MapReduce优点

(1)为什么用MapReduce(计算框架?)?


数据分片和移动计算

MapReduce采用计算移动到数据端方式,

此方式极大提高数据的运算效率

(2)为什么要用将计算移动到数据端?

一般计算数据方式从数据源获取数据,将计算结果返还给数据源,

当计算大量数据时,这种方式存在很大弊端,在获取数据时,由于

受到带宽限制,导致传送效率大大降低而MapReduce就很好的解

决之一瓶颈,原理:当得到计算请求时,只将计数据计算算法返还

给数据端,数据端根据算法执行运算过程,这样就大大提高数据

计算效率

二  MapReduce工作流程及原理

共六个步骤:


如统计词频如图:

用MapReduce分析数据集 mapreduce对数据处理的流程,用MapReduce分析数据集 mapreduce对数据处理的流程_应用程序,第1张

第一步 Input 输入数据源

第二步 Splitting 分割数据源, 按照行数分割

第三步Mapping  映射 分发分割后的数据

第四步:shuffing  其进行分组排序  此部分是透明的且不可变动

第五步 Reducing 去重   Reducing得到shuffle结果即是<K2,V2{1,1,1}>只输出其中一条,图中Reducing和自定义合并而非系统本身操作结果

第六步  Final result  得到最终结果

注释:
步骤与步骤之间为串行关系(每一步按顺序一次执行)

而步骤内部为并行关系(内部中运行同时进行)

MR工作原理:
原始文件
 <k1,v1> k1每行文本的偏移量(k1可为Object 或者LongWritable)  v1每行文本的值 

Mapper<Object,>

map()
 <k2, v2>
shuffle 在不同分区中,按key进行分组排序把相同的v放在统一集合中
 <k2,{v2,v2',v2''......}>
Reduce
 <k3,v3>去重

三MapReduce On Yarn 执行流程

用MapReduce分析数据集 mapreduce对数据处理的流程,用MapReduce分析数据集 mapreduce对数据处理的流程_数据_02,第2张

1.用户向Yarn中提交应用程序,其中包括Application程序  启动Application的命令   用户程序等

2 ResourceManager为该应用程序分配第一个Container, 并与对应的NodeManager通信,要求它在这个Contai中启动应用程序的ApplicationMaster

3.ApplicationMaster首先向ResourceMaster注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后,他将为各个人物

申请资源,并监控他的运行状态,一直到运行结束及重复4-7

4. ApplicationMaster采用轮询的方式通过RPC协议向ResouManager申请和领取资源

5.一旦ApplicationMaster申请到资源后,则与对应的NodeManager通信,要求其启动人物

6.NodeManager为人物设置好运行环境(包括环境变量  jar包 二进制程序等)后,将任务启动命令写到一脚本中,并通过运行该脚本启动任务

7.各个任务通过某个PRC协议向Applicationmaster 汇报自己的状态和进度,提让Applicationmaster 随时掌握各个任务的运行状态,从而咋

在任务失败时从新启动任务,在应用程序运行过程中,用户可以通过RPC向ApplicationMaster查询应用程序的当前运行状态

8 应用程序运行完成后, ApplicationMaster向ResourceManager注销,并关闭自己

注释:

caontainer:硬件中的CPU+内存的逻辑存储空间


https://www.xamrdz.com/web/28v1962147.html

相关文章: