什么是Hadoop Yarn

Hadoop YARN:分布式集群资源管理系统详解

1. 什么是YARN?

YARN (Yet Another Resource Negotiator)是 Apache Hadoop 生态系统中的资源管理和作业调度系统 ,最初在 Hadoop 2.0 中引入,取代了 Hadoop 1.0 的 MapReduce 1(MRv1) 架构。它的核心目标是提高集群资源利用率 ,并支持多种计算框架(如 MapReduce、Spark、Flink 等)在同一个集群上运行。


2. YARN 的核心作用

YARN 的主要职责是:

  1. 资源管理:统一管理 Hadoop 集群的计算资源(CPU、内存等)。
  2. 任务调度:协调不同应用程序(如 MapReduce、Spark)的资源分配。
  3. 多框架支持:允许不同的计算引擎(如批处理、流处理、机器学习)共享集群资源。

3. YARN 的架构

YARN 采用 主从(Master-Slave)架构,主要由以下三个核心组件组成:

(1) ResourceManager(RM)

  • 集群资源的总调度者,负责全局资源分配。
  • 包含两个子组件:
    • Scheduler(调度器):负责分配资源(不监控任务状态)。
    • ApplicationsManager(应用管理器):负责接收任务提交、启动 ApplicationMaster 等。

(2) NodeManager(NM)

  • 每个工作节点(DataNode)上的代理 ,负责:
    • 向 ResourceManager 汇报本节点的资源(CPU、内存)。
    • 管理 Container(容器),执行具体的计算任务。

(3) ApplicationMaster(AM)

  • 每个应用程序(如 MapReduce、Spark Job)的专属管理者 ,负责:
    • 向 ResourceManager 申请资源。
    • 与 NodeManager 协作启动和监控任务(如 Map Task、Reduce Task)。

4. YARN 的工作流程

  1. 客户端提交任务 (如 hadoop jar 提交 MapReduce 作业)。
  2. ResourceManager 分配 ApplicationMaster :
    • RM 选择一个 NodeManager 启动 AM。
  3. ApplicationMaster 申请资源 :
    • AM 向 RM 申请 Container(计算资源单元)。
  4. NodeManager 启动任务 :
    • RM 分配 Container 后,NM 启动具体的 Task(如 Map Task)。
  5. 任务执行与监控 :
    • AM 监控任务状态,失败时申请新资源重试。
  6. 任务完成,释放资源 :
    • AM 向 RM 注销,释放占用的资源。

5. YARN 的调度器

YARN 支持多种调度策略,常见的有:

调度器 特点 适用场景
FIFO Scheduler 先进先出,简单但资源利用率低 测试环境
Capacity Scheduler 队列划分,保证资源隔离(Hadoop 默认) 多租户集群
Fair Scheduler 动态平衡资源,公平共享 混合负载(如批处理 + 交互式查询)

6. YARN 的优势

  1. 高资源利用率:多个框架共享集群,避免资源浪费。
  2. 扩展性:支持数千节点的大规模集群。
  3. 灵活性:不仅支持 MapReduce,还能运行 Spark、Flink、Tez 等。
  4. 多租户支持:通过队列管理不同团队/任务优先级。

7. YARN 的局限性

  1. 不适合低延迟任务:默认调度策略对实时计算(如 Storm)支持较弱。
  2. 资源隔离依赖 Container:若任务异常(如内存泄漏),可能影响整个节点。
  3. 小文件处理效率低:Hadoop 生态的通病,需结合其他优化手段。

8. YARN 的应用场景

  • 批处理计算:MapReduce、Hive 查询
  • 交互式分析:Spark SQL、Presto
  • 流处理:Flink、Spark Streaming
  • 机器学习:TensorFlow on YARN、MLlib

9. 总结

YARN 是 Hadoop 2.0+ 的核心资源管理层 ,它通过解耦资源管理和任务调度 ,使 Hadoop 从单一的 MapReduce 计算框架演变为支持多种计算模式的通用大数据平台。尽管后续出现更轻量的资源管理工具(如 Kubernetes),YARN 仍是企业级 Hadoop 生态的基石。

学习建议:掌握 YARN 的架构和调度原理,是深入理解 Hadoop、Spark 等大数据技术的关键一步!

相关推荐
大大大大晴天3 小时前
从 Prompt 到 Tool Calling:AI Agent 如何稳定连接程序世界
大数据·agent
key_3_feng3 小时前
反馈闭环:Agent 自我进化的真正引擎
大数据·agent
EnCi Zheng4 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
GlobalInfo4 小时前
重磅发布 | 2026年船体清洁机器人行业研究报告:市场规模、发展前景与十五五战略地图
大数据·人工智能·机器人
海宇服务4 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化园区商户免押租赁资信核验网关
大数据·人工智能·架构·自动化
CodeGL5 小时前
开源的分布式任务调度平台:XXL-Job
分布式·开源
热文新讯5 小时前
迎进博·话疗愈:2026酒店“疗愈睡眠”闭门研讨会在沪举行
大数据·人工智能·物联网
NailiConveyor8 小时前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
梦影_8 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
没落之王9 小时前
三易五行看宋朝的三界确立
大数据·人工智能·算法