什么是Hadoop Yarn

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

1. 什么是YARN?

YARN (Yet Another Resource Negotiator)是 Apache Hadoop 生态系统中的资源管理和作业调度系统 ,最初在 Hadoop 2.0 中引入,取代了 Hadoop 1.0MapReduce 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 等大数据技术的关键一步!

相关推荐
岁岁种桃花儿6 分钟前
Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
大数据·架构·flink
TOPGUS16 分钟前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销
2501_933670791 小时前
2026 高职大数据与会计专业零基础能考的证书有哪些?
大数据
WHD3061 小时前
苏州数据库(SQL Oracle)文件损坏修复
hadoop·sql·sqlite·flume·memcached
ClouderaHadoop2 小时前
CDH集群机房搬迁方案
大数据·hadoop·cloudera·cdh
TTBIGDATA2 小时前
【Atlas】Ambari 中 开启 Kerberos + Ranger 后 Atlas Hook 无权限访问 Kafka Topic:ATLAS_HOOK
大数据·kafka·ambari·linq·ranger·knox·bigtop
程序员清洒2 小时前
CANN模型部署:从云端到端侧的全场景推理优化实战
大数据·人工智能
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-相关技术栈(分布式场景下事件机制)
java·spring boot·分布式·ddd
lili-felicity2 小时前
CANN多设备协同推理:从单机到集群的扩展之道
大数据·人工智能
pearbing4 小时前
天猫UV量提高实用指南:找准方向,稳步突破流量瓶颈
大数据·uv·天猫uv量提高·天猫uv量·uv量提高·天猫提高uv量