YARN架构

文章翻译自http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html


关于YARN最基本的想法是将 资源管理的功能与 作业的调度,监控的功能拆分成不同的进程服务。进一步地,就是拥有一个全局的 ResourceManager(资源管理器,RM)应用程序级别的ApplicationMaster(AM,每个应用程序拥有一个)

一个应用程序(无论是Hadoop应用程序还是Spark应用程序)或就是一个单一job,或是由多个jobs组成的有向无环图(DAG)

ResourceManager和NodeManager构成了数据计算的框架。

在这里插入图片描述

ResourceManager,RM

拥有最终权限,可以在系统中的所有应用程序之间做出资源仲裁。

有两个主要的组件

  • Scheduler
  • ApplicationsManager(注意AppsMngr是用来管理多个应用程序Applications)

Scheduler

负责分配各种资源给这种正在运行的Applications,服从于容量、队列的限制。

该调度器是纯净的调度器,意味着它不监控应用程序,也不获取应用程序的状态信息。

同时,调度器也无法保证能够重新启动失败的任务,因为任务所在的应用程序可能本身就已经挂掉了,或者硬件出现故障。

调度器是根据应用程序对资源的需求来进行调度,调度器是基于Container的抽象概念。Container中包含了内存,cpu,磁盘,网络等元素。

调度器有一个可插拔的策略,用来在各种队列、应用程序间对集群资源进行分区。目前的调度器如CapacityScheduler和FairScheduler等都是可插拔策略的实例。

ApplicationsManager,AppsMngr

负责接收作业的提交,与第一个Container进行协调,在第一个Container中执行特定Application的AppMstr,并且提供服务,能够在失败的时候重启AppMstr的Container。

ApplicationMaster(每个Application都只拥有一个)负责从Scheduler中协调合适的资源Container,跟踪Container的状态,监控作业进度。

NodeManager,NM

是机器级别的框架代理(每个工作节点拥有一个NM),负责创建、管理节点中的容器,监控自身的资源使用情况(cpu,内存,磁盘,网络),也将这些情况汇报给RM(中的调度器Scheduler)。Container负责执行AppMstr指定的任务。

Health Checker Service

NodeManager运行服务以确定其正在执行的节点的运行状况。
这些服务会对磁盘以及任何用户指定的测试执行检查。如果任何运行状况检查失败,NodeManager会将该节点标记为运行状况不佳并将其传达给RM,然后RM会停止向该节点分配Container。
节点状态的通信是作为NodeManager和ResourceManager之间的心跳的一部分完成的。磁盘检查程序和健康 状况监视器运行的时间间隔不会影响心跳间隔。
当心跳发生时,使用这两个检查的状态来决定节点的健康状况。

ApplicationMaster,AppMstr

实际上是特定于框架的库,任务是协调来自RM的资源,并且与NM一起执行与监控task。

其他

Hadoop2.x版本中的MapReduce维持着与hadoop1.x版本的API兼容性。这意味着所有的MapReduce作业只要重新编译过就能在YARN上运行。

ReservationSystem

YARN通过ReservationSystem,使得能够支持 resource reservation(资源预留)
ReservationSystem是YARN中的一个组件,允许用户指定一个资源随时间变化以及时间限制的大概轮廓,并且通过resource reservation来确保重要作业的能够被可以预料到地执行。

ReservationSystem能够随时间追踪资源,对资源的预留执行准入控制,并动态指示下级的调度器来确保预留动作能够被执行。

Federation

为了将YARN扩展到超过几千个节点,YARN 通过YARN Federation功能支持 Federation 的概念。
联邦能够通过连接多个YARN集群(子集群),让他们看起来向一个巨大的单一集群。
这样可以用于实现更大规模的集群,允许多个独立集群合作完成更大的作业,或者提供给具有跨所有集群的权限的租户。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值