Yarn的基本架构(设计思想)

Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。

一个 ResourceManager 和多个 NodeManager 构成了 Yarn 资源管理框架。他们是 Yarn 启动后长期运行的守护进程,来提供核心服务。
Yarn的基本架构(设计思想)
Yarn 主要由 ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件构成。

  1. ResourceManager ( RM)主要作用如下:
    (1) 处理客户端请求
    (2) 监控 NodeManager
    (3) 启动或监控 ApplicationMaster
    (4) 资源的分配与调度

  2. NodeManager ( NM)主要作用如下:
    (1) 管理单个节点上的资源
    (2) 处理来自 ResourceManager 的命令
    (3) 处理来自 ApplicationMaster 的命令

  3. ApplicationMaster ( AM ) 作用如下:
    (1) 负责数据的切分
    (2) 为应用程序申请资源并分配给内部的任务
    (3) 任务的监控与容错

  4. Container
    Container 是 Yarn 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。