上一篇文章介绍了 HDFS 和 MapReduce 的体系结构。这篇文章介绍 YARN 的体系结构。
YARN 式分布式操作系统,其基本功能就是管理整个集群的计算资源,提供用户程序访问系统资源的 API。MapReduce 是 YARN 里的一种编程方式。
体系架构
MapReduce v1 中的 JobTracker 两大功能——资源管理和任务调度,拆分为 ResourceManager 和 ApplicationMaster。前者负责资源管理,后者负责任务管理。而 TaskTracker 发展为 NodeManager,用来管理本机资源。ResourceManager 和从属节点的进程 NodeManager 组成了 Hadoop 2.x 的分布式数据计算框架。
YARN 依旧是 master/slave 架构,它有以下几个部分:
- client:客户端,负责向集群提交作业;
- ResourceManager:集群主进程,仲裁中心,负责集群资源管理和任务任务调度;
- Scheduler:资源仲裁模块;
- ApplicationManager:选定,启动和监管 ApplicationMaster;
- NodeManager:集群从进程,管理监视 Containers,执行具体任务;
- ApplicationMaster:任务执行和监管中心。
- 作业提交
Client 向主进程 ResourceManager 的 ApplicationManeger 模块提交任务,ApplicationManager 选中某 NodeManager 的某 Container 来执行程序中的 ApplicationMaster。
- 任务分配
ApplicationMaster 向 Scheduler 申请资源,Scheduler 根据 NodeManager 发送过来的资源信息和集群指定的调度策略以 Container 为单位给 ApplicationMaster 分配计算资源。
- 任务执行
ApplicationMaster 向选定的 NodeManager 发送任务信息,让其启动 NodeManager 管理的 Container 计算任务。
- 进度和状态更新
处于计算状态的 Container 向其所在 的NodeManager 汇报计算进度,NodeManager 通过心跳包,将这些信息汇报给 ApplicationMaster,ApplicationMaster 汇总信息,给出任务进度。
- 任务完成
信息上报到 ApplicationMaster,ApplicationMaster 再将借宿信息汇报给 ApplicationManager,ApplicationManager 通知客户端结束任务。
安装与配置 YARN
安装 YARN 实际上就是安装 Hadoop 2.x,首先要下载 Hadoop 并设置环境变量,下载之后进行配置。
参考资料:
【1】https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html;
【2】《云计算》,刘鹏。