一、YARN 简介
1. YARN 是什么?
YARN(Yet Another Resource Negotiator)是 Hadoop 2.0 中引入的资源管理系统。它将资源管理和作业调度的职责从 MapReduce 中分离出来,使得 Hadoop 能够更高效地管理和调度集群资源。
2. YARN 的优势
可扩展性:解决了 Hadoop 1.0 中作业跟踪器的可扩展性瓶颈。
资源利用率:提高了集群资源的利用率。
多框架支持:允许在 Hadoop 集群上运行非 MapReduce 类型的作业。
二、YARN 架构
1. 主要组件
ResourceManager (RM):负责全局资源的管理和分配。
NodeManager (NM):负责管理单个节点的资源。
ApplicationMaster (AM):负责管理单个应用程序的生命周期。
2. 工作流程
客户端提交作业到 ResourceManager。
ResourceManager 分配资源给 ApplicationMaster。
ApplicationMaster 向 NodeManager 请求资源,启动容器。
容器运行 MapReduce 任务。
ApplicationMaster 跟踪任务进度。
三、YARN 集群安装
1. 环境准备
硬件资源:足够的 CPU、内存和存储。
软件资源:Hadoop 发行版(如 Apache Hadoop 或 Cloudera Hadoop),Java 环境(JDK 1.8 或以上)。
2. 安装步骤
(1)安装 Hadoop
下载并安装 Hadoop。
配置环境变量,确保 hadoop 命令可用。
(2)配置 Hadoop
hadoop-env.sh:设置 Java 环境变量。
core-site.xml:配置 HDFS 的核心参数。
hdfs-site.xml:配置 HDFS 的高可用性等参数。
yarn-site.xml:配置 YARN 的资源管理参数。
mapred-site.xml:配置 MapReduce 参数。
(3)启动 Hadoop
格式化 HDFS:hadoop namenode -format。
启动 HDFS:start-dfs.sh。
启动 YARN:start-yarn.sh。
3. 验证集群状态
使用命令 yarn node -list 查看节点信息。
访问 ResourceManager 的 Web UI(默认地址为 http://
四、YARN 高可用性配置
1. 配置 HA
在 yarn-site.xml 中启用 ResourceManager 的 HA。
配置 ZooKeeper 集群用于状态存储。
2. 自动故障转移
配置自动故障转移机制,确保 ResourceManager 的高可用性。
五、YARN 的管理和监控
1. 管理工具
使用 Ambari 或 Ansible 等工具简化集群管理。
2. 监控
通过 YARN 的 Web UI 监控集群状态。
查看日志文件分析运行情况。
六、YARN 使用案例
1. 提交作业
使用 hadoop jar 命令提交 MapReduce 作业。
指定作业的入口点和资源需求。
2. 示例:Word Count
编写 Java 或 Python 程序实现 Word Count。
编译并打包 Java 程序。
提交作业并查看结果。
七、注意事项
1. 配置文件的一致性
确保所有节点的配置文件一致。
2. 资源分配
合理配置 YARN 的资源分配参数。
3. 日志管理
开启日志聚集功能,集中管理日志。