Yarn的基本架构(设计思想)
Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。
一个 ResourceManager 和多个 NodeManager 构成了 Yarn 资源管理框架。他们是 Yarn 启动后长期运行的守护进程,来提供核心服务。
Yarn 主要由 ResourceManager、NodeManager、ApplicationMaster 和 Container 等组件构成。
-
ResourceManager ( RM)主要作用如下:
(1) 处理客户端请求
(2) 监控 NodeManager
(3) 启动或监控 ApplicationMaster
(4) 资源的分配与调度 -
NodeManager ( NM)主要作用如下:
(1) 管理单个节点上的资源
(2) 处理来自 ResourceManager 的命令
(3) 处理来自 ApplicationMaster 的命令 -
ApplicationMaster ( AM ) 作用如下:
(1) 负责数据的切分
(2) 为应用程序申请资源并分配给内部的任务
(3) 任务的监控与容错 -
Container
Container 是 Yarn 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。