yarn 主要由ResourceManager、NodeManager、ApplicationMaster、Container、Scheduler 等几个组件构成。

yarn的组成结构及各个组件功能

ResourceManager(RM)

        RM是一个全局的资源管理器,负责整个系统的资源管理和分配。

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

 

Scheduler(调度器)

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

        

Applications Manager(应用程序管理器)new ApplicationMaster 监控所有job的任务运行结果的监控 --> 客户端 

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

 

ApplicationMaster(AM)job过程监控 

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

 

NodeManager(NM)+ datanode 硬盘 CPU 内存

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

 

Container(重要) --> 资源接口 --> map reduce  mapContainer reduceContainer spark --> sparkContainer

Container是YARN中的资源抽象,它封装了NodeManager节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。(队列 普通用户 VIP会员 -- 权重 权重高的一定是先执行)

yarn提交任务的过程

https://blog.csdn.net/weixin_40035337/article/details/108201178

 

 

相关文章: