前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >资源管理与调度系统YARN

资源管理与调度系统YARN

作者头像
凹谷
发布2020-04-11 10:50:42
1.2K0
发布2020-04-11 10:50:42
举报

YARN作为一个通用的资源管理系统,目标是将短作业和长服务混合部署到一个集群中,并为他们提供统一的资源管理和调度功能,概括起来主要解决以下两个问题:1.提高集群资源利用率,2.服务自动化部署。

一、YARN的基本架构:

YARN总体上采用master/slave架构,ResourceManager为master,NodeManager为slave,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个应用程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务,由于不同ApplicationMaster被分不到不同的节点上,因此它们之前不会相互影响。

YARN:主要由ResourceManager、NodeManager、ApplicationMaster、和Container组成。

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

1、.调度器:主要功能是根据资源容量,队列等方面限制条件,将系统中的资源分配给各个应用程序。

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

ApplicationMaster(AM):用户提交的每个应用程序均包含一个独立的AM,其主要功能包括:与RM调度器协商以获得资源(用Container表示)、将得到的资源进一步分配给内部任务、与NM通信以启动/停止任务等、监控所有任务的运行状态。

NodeManager(NM):NM是每个节点上的资源管理器,一方面是定时向RM汇报本节点的资源使用情况和各个Container的运行状态,另一方面,他接收并处理来自AM的任务启动或停止等各种请求。

Container:是yarn的基本资源分配单位,对应用程序运行环境的抽象,并为应用程序提供资源隔离环境,它封装了如内存、cup、磁盘、网络等。

二、 YARN的高可用:

ResourceManager HA:引入了Active/Standby ResouceManager通过沉余方式解决ResourceMangager单点故障。

ResourceManager Recovery:内置了重启恢复功能

NodeManager Recovery:NodeManager内置了重启恢复功能。

三、YARN工作流程

当用户向yarn提交一个应用程序后,yarn将分两个阶段运行该程序,第一个阶段是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为他申请资源,并监控它的运行状态。

1、提交应用程序

2、启动ApplicationMaster

3、ApplicationMaster注册

4、获取资源

5、请求启动Container

6、Container监控

7、注销ApplicationMaster

四、YARN资源调度器

层级队列管理机制:组织方式:子队列、最小容量、最大容量

多租户资源调度器:Capacity/Fair Scheduler

1、Capacity Scheduler:以队列为单位划分资源,每个队列可设定一定比例的资源最低保证和使用上限,同时,每个用户也可以设定一定的资源使用上限以防止资源滥用,而当一个队列的资源有剩余时,可暂时将剩余资源共享给其它队列。Capacity Scheduler有一下特点:容量保证、灵活性、多重租用、安全保证(ACL)、动态更新配置文件。

2、Fair Scheduler:已队列为单位划分资源,每个队列设定一定比例的最低保证和上限,同Capacity·一样,不同之处主要体现在一下方面:资源公平共享、调度策略配置灵活、提高小应用程序响应时间、应用程序在队列间转移。Fail Scheduler没有采用百分比表示资源,取而代之的是实际资源数量。

可以基于节点的标签调度,及资源强占调度

五、YARN的资源隔离

CPU隔离机制

六、以YARN为核心的生态系统

YARN之上可以运行各种应用类型框架,包括离线计算框架MapReduce、实时计算框架Strom、DAG计算框架Tez等,真正实现了一个集群多用途,这样的集群我们成为轻量级弹性计算平台,说他轻量,是Yarn采用了Cgroups轻量级隔离方案,说它弹性,是因为YARN能够根据各种计算框架或者应用的负载和需求调整它们各自占用的资源,实现集群资源共享、资源弹性收缩。

随着YARN朝着资源管理系统方向更好的发展,最终Web Server、Mysql Server这种长服务,均可部署到YARN之上,这样,Yarn将变为一个服务统一部署和管理平台,最终形成一个以Yarn为核心的生态系统。

资源管理系统Mesos:设计动机是解决编程模型和计算框架在多样化环境下,不同框架建的资源隔离和共享问题,尽管它的设计动机和YARN稍有不同,但架构和实现策略与YARN相似,当前使用Mesos的公司有Twitter、豆瓣等。

资源管理系统架构演变:集中式架构(MRv1 JobTracker)、双层调度架构(YARN、Mesos)、共享状态架构(Omega)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据与微服务架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
流计算 Oceanus
流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的企业级实时大数据分析平台,具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档