Yarn工作原理(大数据学习14)

YARN是一个集群资源的管理与任务调度的分布式框架
 

Yarn的组件架构:

这里写图片描述

                                                         Yarn 架构图  

Yarn 架构图运行流程 

 

  1. 客户端提交应用程序给ResourceManager
  2. ResouceManager会生成ApplicationMaster,并在某一个节点服务器上 运行ApplicationMaster
  3. ApplicationMasterResourceManger注册其信息,并且向ResourceManger发送申请资源报告,申请contaniner容器,以运行application下的任务(其实是每个container容器被分配后,由每个机器上的nodemanger来启动该container
  4. 在运行过程中,由applicationMaster来运行和管理container里面的任务,其中container会通过心跳机制向applicationMaster来发送运行信息。
  5. 任务完成之后,applicationResourceManager报告,任务完成,container进行资源释放

三大组件概念:

(1)ResourceManager

   ResourceManager(RM)是一个全局的资源管理器,负责整个系统的资源管理和分配,主要包括两个组件,即调度器(Scheduler)和应用程序管理器(Applications Manager)。

调度器接收来自ApplicationMaster的应用程序资源请求,把集群中的资源以“容器”的形式分配给提出申请的应用程序,容器的选择通常会考虑应用程序所要处理的数据的位置,进行就近选择,从而实现“计算向数据靠拢”。

容器(Container)作为动态资源分配单位,每个容器中都封装了一定数量的CPU、内存、磁盘等资源,从而限定每个应用程序可以使用的资源量。

调度器被设计成是一个可插拔的组件,YARN不仅自身提供了许多种直接可用的调度器,也允许用户根据自己的需求重新设计调度器。

应用程序管理器(Applications Manager)负责系统中所有应用程序的管理工作,主要包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动等。
 

(2)ApplicationMaster:

ResourceManager接收用户提交的作业,按照作业的上下文信息以及从NodeManager收集来的容器状态信息,启动调度过程,为用户作业启动一个ApplicationMaster。

ApplicationMaster的主要功能是:

(1)当用户作业提交时,ApplicationMaster与ResourceManager协商获取资源,ResourceManager会以容器的形式为ApplicationMaster分配资源;

(2)把获得的资源进一步分配给内部的各个任务(Map任务或Reduce任务),实现资源的“二次分配”;

(3)与NodeManager保持交互通信进行应用程序的启动、运行、监控和停止,监控申请到的资源的使用情况,对所有任务的执行进度和状态进行监控,并在任务发生失败时执行失败恢复(即重新申请资源重启任务);

(4)定时向ResourceManager发送“心跳”消息,报告资源的使用情况和应用的进度信息;

(5)当作业完成时,ApplicationMaster向ResourceManager注销容器,执行周期完成。

(3)NodeManager:

NodeManager 管理一个 YARN 集群中的每个节点。NodeManager 提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1 通过插槽管理 MapReduce 任务的执行,而 NodeManager 管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。YARN 继续使用 HDFS 层。它的主要 NameNode 用于元数据服务,而 DataNode 用于分散在一个集群中的复制存储服务。

三大组件的主要功能介绍:

(1)ResourceManager

  1.  负责整个集群的资源管理和分配
  2. 处理客户端请求
  3. 启动/监控ApplicationMaster
  4. 监控NodeManager
  5. 资源分配与调度

(2)ApplicationMaster:

  1. 为应用程序申请资源,并分配给内部任务
  2. 任务调度、监控与容错

(3)NodeManager:

  1. 单个节点上的资源管理
  2. 处理来自ResourceManger的命令
  3. 处理来自ApplicationMaster的命令

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3分钟秒懂大数据

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值