YARN基本架构及组件

        YARN集群总体上是经典的主/从(Master/Slave)架构,主要有ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。YARN集群架构如图所示。

     

如何检测yarn集群状态 yarn 集群_hadoop

1、ResourceManager

        resourceManager以后台进程的形式进行,负责对集群资源进行统一管理和任务调度。ResourceManager的主要职责如下:

1、接收来自客户端的请求。

2、启动和管理各个程序的ApplicationMaster。

3、接收来自ApplicationMaster的资源申请,并为其分配Container。

4、管理NodeManager,接收来自NodeManager的资源和节点健康情况汇报

2、NodeManager

        Nodemanager是集群中每个节点上的资源和任务管理器,以后台进程的形式运行。它会定时向ResourceManager汇报本节点上的资源(内存,CPU)使用情况和各个Container的运行状态,同时会接收并处理来自ApplicationMaster的Container启动/停止等请求。NodeManager不会监视任务,它仅监视Container中的资源使用情况。例如,如果一个Container消耗的内存比最初分配的更多,它会结束改Container。

3、Task

        Task是应用程序的具体执行任务。一个应用程序可能有多个任务,如一个MapReduce程序可以有多个Map任务和多个Reduce任务(大概就是执行多种操作,比如相乘后又排序再去最大值)

4、Container

        Container是YARN中资源分配的基本单位,封装了CPU和内存资源的一个容器,相当于是一个Task运行环境的抽象。从实现上看,Container是一个Java抽象类,定义了资源信息。应用程序的Task将会被发布到Container中运行,从而限定了Task使用的资源量。

5、ApplicationMaster

        ApplicationMaster即应用程序管理者,主要负责应用程序的管理,以后台进程的形式运行。为应用程序向ResourceManager申请资源(内存,CPU),并将资源分配给所管理的应用程序Task。

       总的来说,我们可以这样认为:ResourceManager管理整个集群,NodeManager管理集群中单个节点,ApplicationMaster管理单个应用程序(集群中可能同时有多个应用程序在运行,每个应用程序都有各自的ApplicationMaster)

        现在大三,双非二本院校 大数据专业,个人原因不打算考研,准备主攻Hadoop生态系统。购买了一本张伟洋老师的hadoop大数据技术开发实战,希望通过写博客记录我每天的学习成果。感兴趣的小伙伴可以一起学习,一起进步!