Hadoop系列(二)——灵魂管理者 YARN 详解

YARN 简介

YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源管理和调度。YARN通过其内部的一个全局资源管理器(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM);以Container为单位分配资源为每个应用程序分配一个作业(Job)或者Job的有向无环图(DAG),来达到分离资源管理与作业调度/监控的功能。YARN可以将多种计算框架(如离线处理MapReduce、在线处理的Storm、迭代式计算框架Spark、流式处理框架S4等) 部署到一个公共集群中,共享集群的资源。

Hadoop YARN就好像一个云操作系统灵魂管理者,由一个ResourceManager和多个NodeManager组成。它负责管理所有NodeManger上多维度资源, 并以Container(启动一个Container相当于启动一个主进程)方式分配给应用程序启动ApplicationMaster(相当于开启一个进程) 或运行ApplicationMaster切分的各Task任务(子进程的多线程并发操作)。

YARN 的组件架构

YARN的组件结构如下如所示:

在这里插入图片描述
YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。

从上图可以看出,YARN主要由ResourceManager(包括ApplicationManager和ResourceScheduler)和NodeManager(包括ApplicationMaster和Container)这两个组件构成。下面分别介绍这两个组件的结构和功能:

ResourceManager

resourcemanager是hadoop YARN全局的资源管理器,也是Global(全局)的主进程。

它的功能如下:

  1. 与客户端进行交互,处理来自于客户端的请求,如查询应用的运行情况等。
  2. 启动和管理各个应用的ApplicationMaster,并且为ApplicationMaster申请第一个Container用于启动和在它运行失败时将它重新启动。
  3. 管理NodeManager(NM),接收来自NodeManager的资源和节点健康情况汇报,并向NodeManager下达管理资源命令,例如kill掉某个container。。RM只接受NM的资源回报信息,对于具体的资源处理则交给NM自己处理。
  4. 资源管理和调度,接收来自ApplicationMaster的资源申请,并且为其进行分配。这个是它的最重要的职能。

RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。

Resource scheduler

Resource scheduler是ResourceManager下的调度器,就是说Resource schedule只做根据各个应用程序的资源需求进行资源Container分配这一件事情。它根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值