YARN 安装3.3.4
# YARN 安装
HDFS 装好以后,下一层就是 YARN。它负责集群资源管理和任务调度,后面的 MapReduce2、Tez、Hive、Flink、Spark 都会用到它。
本次安装有一个很重要的细节:选择 YARN 时,Ambari Plus 会自动把 MapReduce2 纳入依赖。因此现场安装向导会显示 已选服务 2,一次完成 YARN 和 MAPREDUCE2 两个服务。本文先把 YARN 的安装链路讲清楚,MapReduce2 的角色和确认方式单独放到下一篇。
本次角色分配如下:
| 主机 | YARN 角色 |
|---|---|
hadoop1.test.com | RESOURCEMANAGER、NODEMANAGER、YARN_CLIENT |
hadoop2.test.com | NODEMANAGER、YARN_CLIENT |
hadoop3.test.com | NODEMANAGER、YARN_CLIENT |
提示
YARN 安装前请先确认 HDFS 已经运行中。YARN 的 Service Check 会使用 HDFS,如果 HDFS 还没稳定,YARN 页面可能装完了,检查任务却过不去。
# 1. 选择 YARN 服务
进入 服务与组件,点击 新增服务,勾选 YARN。

页面顶部会提示本次安装同时处理 YARN、MapReduce2。这是正常现象,不需要手动取消 MapReduce2;后续 MapReduce2 的 HistoryServer 和 Client 会在同一个安装向导里落地。
# 2. 分配 Master 角色
Master 分配页里,YARN 的核心角色是 RESOURCEMANAGER:
| 组件 | 分配主机 |
|---|---|
RESOURCEMANAGER | hadoop1.test.com |

我这里把 ResourceManager 放在 hadoop1.test.com。在单 ResourceManager 的演示环境里,这样后面查看 YARN UI、排查队列和看应用状态都比较集中。
同一个页面还会看到 HISTORYSERVER,它属于 MapReduce2。这里先保留默认分配,下一篇再单独讲它。
# 3. 分配 NodeManager 和 Client
Slave 与 Client 分配页里,YARN 需要看两类:
| 角色 | 本次分配 |
|---|---|
NODEMANAGER | hadoop1.test.com、hadoop2.test.com、hadoop3.test.com |
YARN_CLIENT | hadoop1.test.com、hadoop2.test.com、hadoop3.test.com |

NodeManager 是实际承接容器运行的节点。教程环境三台都安装 NodeManager,后续跑 MapReduce、Tez、Hive 或 Spark 测试任务时,资源池会更完整。
Client 组件建议三台都装。这样无论在哪台机器上执行 yarn application -list、mapred job -list 这类命令,都不需要临时补客户端包。
# 4. 查看自动推荐配置
进入自定义配置页后,页面显示 待填写 0,说明没有必填项需要额外补充。

这里可以重点看三类配置:
| 配置 | 说明 |
|---|---|
yarn.nodemanager.resource.memory-mb | 单台 NodeManager 可提供给容器的总内存。 |
yarn.scheduler.minimum-allocation-mb | 单个容器最小内存。 |
yarn.scheduler.maximum-allocation-mb | 单个容器最大内存。 |
演示环境可以先保留推荐值。生产环境建议结合机器内存、HDFS DataNode 内存、Spark/Hive 作业模型重新估算,避免把系统内存全部交给 YARN。
# 5. 确认安装清单
确认页里要看清楚本次新增服务和角色分配:
| 检查项 | 本次结果 |
|---|---|
| 新增服务 | YARN、MAPREDUCE2 |
| YARN Master | RESOURCEMANAGER -> hadoop1.test.com |
| YARN Slave | NODEMANAGER -> hadoop1.test.com, hadoop2.test.com, hadoop3.test.com |
| YARN Client | 三台主机都安装 |
| 配置校验 | 必填项已填写 |

确认无误后点击 开始安装。
# 6. 提交 KDC 管理员凭据
当前集群已经开启 Kerberos,新增 YARN 和 MapReduce2 时需要生成服务 Principal 和 keytab。向导会弹出 KDC 管理员凭据。
| 配置项 | 示例值 |
|---|---|
| 管理员 Principal | admin/[email protected] |
| 管理员密码 | Kerberosadmin123 |

填写后点击 提交并继续安装。
# 7. 等待启动和检查
安装进入进度页后,我会重点看 RESOURCEMANAGER、NODEMANAGER 和 YARN_SERVICE_CHECK。

这个阶段的通过标准很直接:
| 检查项 | 期望结果 |
|---|---|
RESOURCEMANAGER | 启动成功 |
NODEMANAGER | 三台主机启动成功 |
YARN_SERVICE_CHECK | 执行成功 |
| 失败任务 | 0 |
如果 YARN Service Check 失败,优先看 ResourceManager 日志、NodeManager 日志、Kerberos keytab 是否生成,以及 HDFS 是否可写。
# 8. 完成安装并回到服务页
向导最后显示 YARN 和 MAPREDUCE2 安装完成。

进入 YARN 服务详情页,服务状态应显示为 运行中。

这里我会看:
| 检查项 | 期望结果 |
|---|---|
| 服务状态 | YARN 运行中 |
| 核心实例 | ResourceManager、NodeManager 运行中 |
| 待刷新配置 | 0 |
| 失败请求 | 0 |
YARN 到这里就装好了。下一篇继续看 MapReduce2,它不是单独再点一次安装,而是在本次 YARN 向导里作为依赖一起完成。