今天就跟大家聊聊有关资源管理与调度系统YARN该怎么理解,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
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)。
看完上述内容,你们对资源管理与调度系统YARN该怎么理解有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。