YARN 架构详解与集群安装部署全攻略:从基础到实践

一、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. 工作流程

  1. 客户端提交作业到 ResourceManager。
  2. ResourceManager 分配资源给 ApplicationMaster。
  3. ApplicationMaster 向 NodeManager 请求资源,启动容器。
  4. 容器运行 MapReduce 任务。
  5. 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 的资源管理参数。
    <configuration>
      <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yarn_cluster</value>
      </property>
      <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
      </property>
      <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>hadoop01</value>
      </property>
      <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop02</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    </configuration>
    
  • 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://<ResourceManager>:8088)。

四、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. 日志管理

  • 开启日志聚集功能,集中管理日志。
posted @ 2025-04-05 22:18  软件职业规划  阅读(167)  评论(0)    收藏  举报