什么是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 等大数据技术的关键一步!

相关推荐
智慧物业老杨40 分钟前
数字底座,重构小区治理秩序
大数据
计算机编程指导师1 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
Pniubi2 小时前
分布式锁分类讲解
分布式
guhunyihan2 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
计算机编程指导师2 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
benchmark_cc2 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash
计算机编程指导师3 小时前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险
m0_715674433 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
大数据·网络·人工智能·网络安全
计算机编程指导师3 小时前
Python大数据毕设怎么写?Django结合Hadoop+Spark京东销售分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·京东商品
yichengerp3 小时前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造