Yarn基本架构及其主要角色

大数据技术 潘老师 3年前 (2021-02-24) 2972 ℃ (0) 扫码查看

1.基本架构

YARN是Hadoop2.0版本新引入的资源管理系统,直接从MR1演化而来。

核心思想:

将MP1中JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。

1)ResourceManager:负责整个集群的资源管理和调度。

2)ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。

YARN的出现,使得多个计算框架可以运行在一个集群当中。

1)每个应用程序对应一个ApplicationMaster。

2)目前可以支持多种计算框架运行在YARN上面比如MapReduce、Storm、Spark、Flink等。

系统中所有应用资源调度的最终决定权由ResourceManager担当,每个应用的ApplicationMaster实际上是框架指定的库,其从ResourceManager调度资源并和NodeManager一同执行监控任务,NodeManager会通过心跳信息向ResourceManager汇报自己所在节点的资源使用情况,如图(执行和监控过程图):
Yarn基本架构及其主要角色

2.主要角色

1)ResourceManager(RM)

RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM),通俗讲是用于管理NodeManager节点的资源,包括cup、内存等。

2)Scheduler(调度器)

调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序;在资源紧张的情况下,可以kill掉优先级低的,来运行优先级高的任务。

3)Applications Manager(应用程序管理器)

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

4)ApplicationMaster(AM)

ApplicationMaster 管理在YARN内运行的每个应用程序实例。每个应用程序对应一个ApplicationMaster。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配),通俗讲是管理发起的任务,随着任务创建而创建,任务的完成而结束。

5)NodeManager(NM)

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

6)Container

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/bigdata/1948.html
喜欢 (4)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】