Hadoop之MapReduce思想

Hadoop之MapReduce思想

MapReduce是Hadoop框架的一个并行计算框架,将一个计算任务拆分成两个阶段:Map和Reduce

MapReduce擅长做大数据处理,MapReduce的思想就是`分而治之

.- Map负责**”分“**,即把庞大且复杂的任务分解成若干个”简单的任务“来处理,简单的任务包含三层

  • 是对数据或者计算模型相对于原任务要大大缩小

  • 就近计算原则,就是任务会被分配到存放所需数据的节点上进行计算

  • 这些小任务不止一个且并行计算,而且彼此间没有依赖关系

  • Reducer负责对Map的计算结果进行汇总

首先来说 什么是YARN

Yarn作为一个资源调度平台,有一个全局的管理者叫做ResourceManager,ResourceManager负责对集群的整体计算及资源做统筹规划,有各个节点的管理者叫做NodeManager,负责向ResourceManager报告其计算资源的使用情况,在NodeManger中有一个MRAppMaster管理这里当前运行的MRApp,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监视任务。

ResourceManager:负责对集群的整体计算及资源做统筹规划

NodeManager:管理主机上的计算组员,负责向RM 汇报自身的状态信息

MRAppMaster:计算任务的Master,负责申请计算资源,协调计算任务

YARN Child:负责做实际计算任务

Container:计算资源的抽象单元

Hadoop的序列化(Bean对象)

开发不是一成不变的,Hadoop中提供了集中数据类型的序列化,但是在实际的开发中往往是不够用的,需要自定义序列化对象
在Java中使用的序列化技术是内置的Serializable
但是Hadoop并没有采取这种序列化方式,使用了自己实现的一套序列化机制,叫做Writable

需要进行序列化后才能在网络中进行传输
编码(序列化)----解码(反序列化)

一个Bean要先实现Writable接口,里面有俩个方法
write 序列化编码方法
readFields 序列化解码方法

mapreduce流程

mapreduce流程图
1 首先是通过程序员所编写的MR程序通过命令行本地提交或者IDE远程提交

2 一个MR程序就是一个Job,Job信息会给ResourceManger (负责对集群的整体计算及资源做统筹规划),向ResourceManger 注册信息

3 在注册通过后,Job会拷贝相关的资源信息(从HDFS中)

4 紧接着会向ResourceManger 提交完整的Job信息(包括资源信息)

5a ResourceManger 会通过提交的Job信息,计算出Job所需的资源,为Job分配Container(计算资源的抽象单元)资源

5b 计算资源会分发给不同节点上的NodeManger(管理主机上的计算组员,负责向ResourceManger 汇报自身的状态信息),NodeManager会创建一个MRAppMaster(计算任务的Master,负责申请计算资源,协调计算任务)

6 MRAppMaster初始化Job

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值