Yarn系列(一)——Yarn整体介绍

1. Yarn的基本结构

1.1. Yarn的组成结构

Yarn总体是主/从(M/S)结构,ResourceManager(RM)是Master,NodeManager(NM)是Slave,RM负责对各NM上的资源进行统一管理和调度。Yarn主要由ResourceManager、NodeManager、ApplicationMater、Container等几个组件组成,如下图。

Yarn系列(一)——Yarn整体介绍 结合这张图,简要说明一下任务提交过程: 当用户提交一个程序时,RM会提供一个用来跟踪和管理这个程序的ApplicationMater(AM),一个程序拥有一个AM,AM负责向RM申请资源,并要求NM启动任务,资源概念在Yarn中是用Container表示。

1.2. 组件简介

  • ResourceManager(RM)
    RM是全局的资源管理器,负责整个系统的资源管理和分配,主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Application Manager,ASM)。
    • 调度器
      调度器根据容量、对列等限制条件,将资源分配给各个正在运行的程序。调度器根据程序资源需求进行分配资源,是一个“纯资源调度器”。
    • 应用管理器
      负责管理整个系统所有的应用程序,包括程序的提交、与调度器协商资源以及启动AM等。
  • ApplicationMater(AM)
    用户提交的每个程序都有一个AM,其功能主要有:资源的申请、任务的进一步分配、与NM通信以启动/停止任务、监控任务的运行状态等。
  • NodeManager(NM)
    NM是每个节点上的资源和任务管理器,其任务主要有两方面:
    • 通过定时的心跳向RM汇报本节点的资源使用情况以及Container的运行状况
    • 接收和处理AM的Container启动/停止等各种请求
  • Container
    是Yarn中资源的抽象,封装了如内存、CPU、磁盘、网络等资源,其是动态资源划分单位,根据程序的需求动态生成。
    ResourceManager作为Yarn的中枢,其地位尤为重要,下面将详细展开。

2. ResourceManager简析

RM负责集群所有资源的统一管理和分配。

2.1. ResouceManager主要功能

RM的主要功能有如下几点:

  • 与客户端交互,处理客户端的请求;
  • 启动和管理ApplicationMater,并在失败的时候重新启动(有次数限制);
  • 管理NodeManager,接受来自NM的资源汇报信息,并下达管理命令如kill Container;
  • 资源的管理与调度,接受来自AM的资源申请,并为之分配资源;

2.2. ResourceManager内部架构

RM的内部架构如下:

Yarn系列(一)——Yarn整体介绍

Ref:

  • 《Hadoop技术内幕:深入解析YARN架构设计与实现原理》
上一篇:在Ubuntu上离线安装Python2.7


下一篇:Linux常用命令