大数据------MapReduce 计算流程

MapReduce是Hadoop的一个并行计算框架,将一个计算任务拆分成为两个阶段分别是Map阶段和Reduce阶段.Map Reduce计算框架充分利用了存储节点(datanode)所在的物理主机的计算资源(内存/CPU/网络/少许磁盘)进行并行计算.MapReduce框架会在所有的存储节点上分别启动一个Node Manager进程实现对存储节点的计算资源的管理和使用.默认情况下Node Manager会将本进程运行的物理主机的计算资源抽象成8个计算单元,每个单元称为一个Container,所有Node Manager都必须听从Resource Manager调度.Resource Manager负责计算资源的统筹分配.

 


 

ResourceManager:统筹计算资源,管理所有的NodeManager,进行资源分配

NodeManager:管理主机上计算资源Container负责向MR汇报自身的状态信息

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

YarnChild:负责做实际计算的任务/进程(MapTask/ReduceTask)

Container:是计算资源的抽象代表着一组内存/cpu/网络的占用,无论是MRAppMaster还是YranChild运势是都需要消耗一个Container逻辑

 


 

 

 

  1. 首先是通过程序员所编写的MR程序通过命令行本地提交或者IDE跨平台提交

  2. 一个MR程序就是一个Job,Job的信息会给ResourceManager,ResourceManager注册Job信息

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

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

  5. ResourceManager通过Job信息计算出当前Job所需要的资源,为Job分配Container(资源的单位)

  6. 这个Container信息会分发给NodeManager,NodeManger会创建MRAppMaster进程

  7. 此时MRAppMaster会初始化Job

  8. 然后会查询任务的切片

  9. 连接RM,请求分配资源,得到对应的资源,连接对应的NodeManager,在YarnChild上启动对应的Container

  10. 从分布式文件系统上拷贝Job资源

  11. 执行MR程序

 

 

 

 

 

 

posted @ 2019-08-29 21:04  我是一名搬运工  阅读(1764)  评论(0编辑  收藏  举报