在前面的文字《Hadoop系列(二十八)Yarn介绍及yarn的优点》我们简单的介绍了一下yarn,这篇文字我们来介绍下yarn的集群架构,首先来一张yarn的图:
从上图可以看出,整个yarn的集群架构包含如下的几个角色:
ResourceManager ApplicationMaster NodeManager Container
下面我们分别介绍下这4种角色。
1)ResourcesManager
RM是⼀个全局的资源管理器,负责整个系统的资源管理和分配,它主要由两个部分组成:调度器(Scheduler)和应⽤程序管理器(Application Manager)。 调度器主要是调度集群里面的所有集群资源,包括不仅限于:cpu,内存,硬盘等,他主要是负责把系统池里面的资源分配给正在运行的应用程序,这里常见的调度器有:先进先出调度器,公平调度器,容量调度器,每种调度器的调度策略不一样,但是目标都是一样的,主要是保证集群的所有资源被充分的利用到。 应用程序管理器主要负责管理整个集群种的所有的应用程序,包括不仅限于应用程序的提交,与调度器协商资源以启动ApplicationMaster,监控ApplicationMaster运行状态并在失败时重启。
2)ApplicationMaster
用户向hadoop集群里面每提交一个应用程序,集群中就会创建一个单独的ApplicationMaster来惯例这个应用程序,他的主要作用有: 1、与ResourcesManager协调获得资源,所获取的资源以container为单位表示。 2、将得到的任务进一步分配给内部的任务。 3、与NodeManager通信,以启动或者停止任务。 4、监控所有的内部任务状态,并在任务运行失败的时候重新为任务申请资源以重启任务。
3)NodeManager
NodeManager是每个节点上的资源和任务管理器,一方面,它会定期地向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态,另一方面,他接受并且处理来自ApplicationMaster的Container的启动和停止请求。
4)Container
Container是一种资源抽象,我们上面介绍的ApplicationMaster向resourceManager申请的资源统一使用Container作为单位表示,所以他是一个封装了各种资源(包括不仅限于CPU,内存,硬盘等)的一个集合抽象。一个应用程序会分配一个Container,这个应用程序只能使用这个Container所描述的资源。
以上就是关于yarn相关的架构介绍。
还没有评论,来说两句吧...