Yarn

2019/01/01 分布式

Yarn和ZooKeeper没联系。Yarn配置的是ResourceManage资源管理;ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务;它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

基本架构

Yarn是Hadoop 2.0中的资源管理系统,它的设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器Scheduler和每个应用程序特有的ApplicationMaster。其中Scheduler负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。这两个服务均由ResourceManager管理。

Yarn的重要组件

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

ResourceManager(RM)

RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。

调度器(YarnScheduler)根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。

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

NodeManager(NM)

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

ApplicationMaster(AM)

用户提交的每个应用程序均包含1个AM,主要功能包括:

  • 与RM调度器协商以获取资源(用Container表示);
  • 将得到的任务进一步分配给内部的任务;
  • 与NM通信以启动/停止任务
  • 监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

参考

Yarn框架和工作流程研究

Yarn平台工作原理

(不错)大话Hadoop1.0、Hadoop2.0与Yarn平台

Search

    Table of Contents