开源组件系列(9):资源管理与调度系统(YARN)

目录

(一)概述

(二)YARN基本架构

(三)YARN高可用性

(四)YARN工作流程

(五)YARN资源调度器

(六)YARN的具体调度场景

(七)YARN资源隔离

(八)YARN生态系统

(九)资源管理系统架构演化


(一)概述

 

YARN作为一个通用的资源管理系统,目标是将短期作业和长期服务混合部署到一个集群中,并为它们提供统一的资源管理和调度功能。YARN是大数据系统发展到一定阶段的必然产物,其他类似的框架还有Google Borg、Google Omega、Twitter Mesos等。概括起来,资源管理系统需要解决如下两个问题:

1.提高集群资源利用率

在大数据时代,为了存储和处理海量数据,需要规模较大的集群服务或者数据中心,运行数量众多、类型繁杂的应用程序,例如离线作业、流式作业、迭代式作业等。这些服务的资源利用率通常很不均衡,有一些满负荷运行,有一些则长期闲置。为了让各种类型的服务集合成一个大集群,共享所有的资源,并由一个系统统一调度和分配,这就诞生了类似于YARN的系统。

2.服务自动化部署

一旦将所有计算资源抽象成一个“大型计算机”后,就会产生一个问题:公司的各种服务如何部署?因此,这类四通实际上也是一种服务统一管理系统,提供服务资源申请、服务自动化部署、服务容错等功能。

 

(二)YARN基本架构

 

YARN总体上采用了Master/Slave架构,其中,ResourceManager为Master,NodeManager为Slave,ResourceManager服务对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以追踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务,由不同的ApplicationMaster被分不到不同的节点上,因此它们之间不会相互影响。详情如下图所示:

下面讲述各个组件的详情:

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

调度器(Scheduler):调度器功能主要功能是根据资源容量、队列等方面的限制条件,将系统中的资源分配给各个应用程序。YARN中的调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作,例如监控或者跟踪应用的执行状态,这些会交给ApplicationMaster来负责。

应用管理器(Application Manager):负责整个系统中的所有应用程序,包括应用程序的提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运营状态并在失败时重启它等。

2.ApplicationMaster(AM):用户提交的每个应用程序均包含一个独立的AM,主要功能包括:与RM调度器协商以获得资源;将得到的资源进一步分配给其内部的任务;与NM通信以启动/停止任务;监控所有任务的运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

3.NodeManager(NM):NM是每个节点上的资源管理器,一方面会定时向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的任务启动/停滞等各种请求。由于YARN内置了容错机制,单个NM的故障不会对集群中的应用程序运行产生严重影响。

4.Container:Container是YARN中的基本资源分配单位,是对应用程序运行环境的抽象,并为应用程序提供资源隔离环境。它封装了多维度的资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是使用Container表示的。YARN中每个人物均会对应一个Container,且该任务只能使用该Container中描述的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值