YARN的介绍

YARN的介绍

(一)YARN 概述
YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。

1、YARN 并不清楚用户提交的程序的运行机制
2、YARN 只提供运算资源的调度(用户程序向 YARN 申请资源,YARN 就负责分配资源)
3、YARN 中的主管角色叫 ResourceManager
4、YARN 中具体提供运算资源的角色叫 NodeManager
5、这样一来,YARN 其实就与运行的用户程序完全解耦,就意味着 YARN 上可以运行各种类型的分布式运算程序(MapReduce 只是其中的一种),比如 MapReduce、Storm 程序,Spark程序,Tez ……
6、所以,Spark、Storm 等运算框架都可以整合在 YARN 上运行,只要他们各自的框架中有符合 YARN 规范的资源请求机制即可
7、yarn 就成为一个通用的资源调度平台,从此,企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享
(二)新版 YARN 架构的优点
YARN/MRv2 最基本的想法是将原 JobTracker 主要的资源管理和 Job 调度/监视功能分开作为两个单独的守护进程。有一个全局ResourceManager(RM)和每个 Application 有一个ApplicationMaster(AM),Application 相当于 MapReduce Job 或者 DAG jobs。ResourceManager和 NodeManager(NM)组成了基本的数据计算框架。ResourceManager 协调集群的资源利用,
任何 Client 或者运行着的 applicatitonMaster 想要运行 Job 或者 Task 都得向 RM 申请一定的资源。ApplicatonMaster 是一个框架特殊的库,对于 MapReduce 框架而言有它自己的 AM 实现,用户也可以实现自己的 AM,在运行的时候,AM 会与 NM 一起来启动和监视 Tasks。
(三)YARN 的概念
1.ResourceManager
ResourceManager 是基于应用程序对集群资源的需求进行调度的 YARN 集群主控节点,负责协调和管理整个集群(所有 NodeManager)的资源,响应用户提交的不同类型应用程序的解析,调度,监控等工作ResourceManager 会为每一个 Application 启动一个 MRAppMaster,并且 MRAppMaster 分散在各个 NodeManager 节点它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationsManager,ASM)
YARN 集群的主节点 ResourceManager 的职责:
1、处理客户端请求
2、启动或监控 MRAppMaster
3、监控 NodeManager
4、资源的分配与调度
2.NodeManager
NodeManager 是 YARN 集群当中真正资源的提供者,是真正执行应用程序的容器的提供者,监控应用程序的资源使用情况(CPU,内存,硬盘,网络),并通过心跳向集群资源调度器ResourceManager 进行汇报以更新自己的健康状态。同时其也会监督 Container 的生命周期管理,监控每Container 的资源使用(内存、CPU 等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)。

YARN 集群的从节点 NodeManager 的职责:
1、管理单个节点上的资源
2、处理来自 ResourceManager 的命令
3、处理来自 MRAppMaster 的命令
3.MRAppMaster
MRAppMaster 对应一个应用程序,职责是:向资源调度器申请执行任务的资源容器,运行任务,监控整个任务的执行,跟踪整个任务的状态,处理任务失败以异常情况
4.Container
Container 容器是一个抽象出来的逻辑资源单位。容器是ResourceManager Scheduler 服务动态分配的资源构成,它包括了该节点上的一定量 CPU,内存,磁盘,网络等信息,MapReduce程序的所有 Task 都是在一个容器里执行完成的,容器的大小是可以动态调整的。
5.ASM
应用程序管理器 ASM 负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动 MRAppMaster、监控 MRAppMaster 运行状态并在失败时重新启动它。
6.Scheduler
调度器根据应用程序的资源需求进行资源分配,不参与应用程序具体的执行和监控等工作资源分配的单位就是 Container,调度器是一个可插拔的组件,用户可以根据自己的需求实现自己的调度器。YARN 本身为我们提供了多种直接可用的调度器,比如 FIFO,Fair Scheduler和 Capacity Scheduler。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值