YARN学习总结-第二节-YARN架构

1.YARN架构

YARN的核心思想是把资源管理和作业的调度、监控分成单独的守护进程。所以,就有一个全局的ResourceManager (RM)和每个应用都有的ApplicationMaster (AM)。一个应用要么是一个作业,要么是一个有向无环图作业。

资源管理器(ResourceManager )和节点管理器(NodeManager )组成了数据计算框架。资源管理器是系统中的应用资源的权威仲裁者。节点管理器是一个在每个节点都会运行的框架的代理,负责容器,监控资源的使用,并且报告这些信息给资源管理器或者调度器(Scheduler)。

MapReduce NextGen Architecture
图片来自互联网,地址为:http://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/YARN.html

每个应用都有应用主进程(ApplicationMaster),是一个特殊库,负责从资源管理器协调资源并且和节点管理器一起工作去执行和监控作业。

  • 资源管理器

资源管理器有两个组件:调度器(Scheduler )和应用管理器(ApplicationsManager)

调度器(Scheduler )

调度器负责分配资源给各种运行的应用。调度器不负责应用的监控和状态跟踪,它也不保证重启由于应用失败或者硬件故障导致的任务停止后的重启。调度器基于应用对资源的请求,执行调度功能。实现方式是基于一种资源容器的概念。这里的资源包括内存,CPU,磁盘,网络等。

调度器有一个可插拔的策略,负责在各种队列和应用间分配集群资源。例如:容量调度器(CapacityScheduler)和公平调度器就是一个例子。

应用管理器(ApplicationsManager)

应用管理器负责接收作业提交,协调去运行第一个容器ApplicationMaster并且提供ApplicationMaster失败后的重启。每一个ApplicationMaster负责从调度器协调合适的资源容器,跟踪他们的状态,监控运行进度。

2.API兼容性

hadoop-2.x里的MapReduce保证API监控,所以所有的MapReduce作业重新编译后,即可在YARN之上运行。

3.资源保留

YARN支持资源保留,是通过ReservationSystem实现,允许用户去指定时间约束为重要作业的执行保留资源。 ReservationSystem负责资源的跟踪,执行保留的准入控制,并能动态指示底层调度器确保预留完成。

4.集群伸缩

为了在几千个节点上伸缩YARN,YARN支持联邦概念,联邦可以将多个子集群透明地联系在一起,作为一个集群对外服务。这样就可以作为一个大集群去运行大作业或者以租户的形式对外提供。

猜你喜欢

转载自blog.csdn.net/qq_20995587/article/details/81973856