当前位置: 首页 > news >正文

YARN架构解析:大数据资源管理核心

一、YARN的设计目标​

  1. ​解耦资源管理与作业调度​​:将资源管理(Resource Management)和任务执行(Task Execution)分离,提升集群资源利用率。
  2. ​支持多种计算框架​​:不再局限于MapReduce,可运行Spark、Flink、Tez等分布式应用。
  3. ​高扩展性​​:支持数千节点和数万并发任务的超大规模集群。
  4. ​高容错性​​:自动处理节点故障和任务失败,保障作业可靠性。

​二、YARN的核心组件​

YARN采用​​主从架构(Master-Slave)​​,包含以下核心组件:

1. ​​ResourceManager(RM)​
  • ​角色​​:全局资源管理和调度器,负责协调集群资源分配。
  • ​主要功能​​:
    • 接收客户端提交的作业请求。
    • 监控NodeManager(NM)状态和资源使用情况。
    • 通过调度器(Scheduler)分配资源(如CPU、内存)给应用程序。
  • ​高可用(HA)​​:通过主备RM和ZooKeeper实现故障切换。
2. ​​NodeManager(NM)​
  • ​角色​​:单个节点上的资源代理,负责管理本节点的资源。
  • ​主要功能​​:
    • 向RM汇报节点资源状态(如可用CPU、内存)。
    • 启动和监控Container(资源容器)。
    • 清理Container占用的资源(如任务完成后释放内存)。
3. ​​ApplicationMaster(AM)​
  • ​角色​​:每个应用程序(如MapReduce作业、Spark作业)的专属协调者。
  • ​主要功能​​:
    • 向RM申请资源(Container)。
    • 与NM通信启动或停止Container。
    • 监控任务执行状态并处理失败任务。
4. ​​Container​
  • ​定义​​:YARN的资源抽象单位,封装了CPU、内存、磁盘、网络等资源。
  • ​特点​​:
    • 每个任务(如Map任务、Reduce任务)运行在一个Container中。
    • 资源分配可动态调整(需框架支持)。

​三、YARN的工作流程​

以下是一个作业(如MapReduce)在YARN上的执行流程:

  1. ​作业提交​

    • 客户端将作业(包含JAR包、配置等)提交到ResourceManager。
  2. ​启动ApplicationMaster​

    • RM为作业分配第一个Container,并在该Container中启动ApplicationMaster(AM)。
  3. ​资源申请​

    • AM向RM申请运行任务所需的资源(Container列表)。
  4. ​资源分配​

    • RM根据调度策略(如Capacity Scheduler)分配资源,返回可用的Container列表。
  5. ​任务执行​

    • AM与NM通信,在分配的Container中启动任务(如Map任务)。
    • AM监控任务状态,失败时重新申请资源。
  6. ​作业完成​

    • 所有任务完成后,AM向RM注销并释放资源。

​四、YARN的调度器(Scheduler)​

YARN支持多种调度策略,用户可根据需求配置:

1. ​​FIFO Scheduler​
  • ​特点​​:按作业提交顺序分配资源,简单但资源利用率低。
  • ​适用场景​​:小型集群或测试环境。
2. ​​Capacity Scheduler​
  • ​特点​​:将集群划分为多个队列,每个队列有固定资源配额,队列内使用FIFO。
  • ​优势​​:资源隔离性好,适合多租户共享集群。
  • ​典型使用​​:Hadoop默认调度器。
3. ​​Fair Scheduler​
  • ​特点​​:动态平衡资源分配,确保所有作业公平共享资源。
  • ​优势​​:适合短期交互式作业(如Spark SQL查询)。

​五、YARN的核心特性​

  1. ​多租户支持​​:不同用户或团队共享集群资源,互不干扰。
  2. ​弹性资源分配​​:Container资源可动态调整(需框架支持)。
  3. ​高容错性​​:
    • ApplicationMaster失败后,RM会重启AM并恢复任务。
    • NodeManager故障时,RM将该节点标记为不可用,任务在其他节点重新调度。
  4. ​资源隔离​​:通过Linux容器(Cgroups)或Docker实现CPU和内存隔离。

​六、YARN的配置与优化​

1. ​​关键配置参数​
  • ​ResourceManager​​:
    <property><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value>  <!-- 单个Container最小内存 -->
    </property>
    <property><name>yarn.scheduler.maximum-allocation-mb</name><value>8192</value>  <!-- 单个Container最大内存 -->
    </property>

  • ​NodeManager​​:
    <property><name>yarn.nodemanager.resource.memory-mb</name><value>16384</value>  <!-- 节点总可用内存 -->
    </property>
    <property><name>yarn.nodemanager.resource.cpu-vcores</name><value>8</value>       <!-- 节点总可用CPU核数 -->
    </property>

2. ​​优化建议​
  • ​避免资源碎片​​:合理设置Container的最小/最大资源。
  • ​启用资源隔离​​:使用Cgroups或Docker限制资源使用。
  • ​监控工具​​:通过YARN Web UI或工具(如Cloudera Manager、Ambari)监控资源利用率。

​七、YARN的适用场景​

  1. ​多计算框架混部​​:同时运行MapReduce、Spark、Flink等作业。
  2. ​长期服务​​:支持长时间运行的服务(如Apache HBase on YARN)。
  3. ​批处理与交互式查询​​:适合ETL任务和即席查询(通过资源动态分配)。

​八、YARN与MapReducev1的对比​

​特性​​MapReducev1(旧版)​​YARN(Hadoop 2.0+)​
资源管理由JobTracker集中管理资源与作业资源管理与作业调度分离
扩展性最多支持4000节点支持数万节点
多计算框架支持仅支持MapReduce支持Spark、Flink等多种框架
容错性JobTracker单点故障ResourceManager支持HA

​九、YARN常用命令​

# 提交作业到YARN
yarn jar hadoop-mapreduce-examples.jar wordcount /input /output# 查看运行中的作业列表
yarn application -list# 终止作业
yarn application -kill <application_id># 查看节点状态
yarn node -list# 查看队列资源使用情况
yarn queue -status <queue_name>

​十、YARN的优缺点​

​优点​​缺点​
支持多种计算框架,生态丰富配置复杂,需根据业务调整调度策略
资源利用率高,适合共享集群默认资源隔离较弱(需依赖Cgroups/Docker)
高扩展性和容错性对超低延迟任务支持有限(更适合批处理)

通过YARN,Hadoop从单一的批处理平台转变为通用的分布式计算资源管理平台,成为大数据生态系统的核心基石。理解YARN的架构和工作原理,是优化集群性能和运行复杂任务的关键。

相关文章:

  • Browser-use快速了解
  • WifiEspNow库函数详解
  • 树莓派搭配 Tailscale 搭建个人云网盘
  • SpringBoot3.4.5 开启虚拟线程(JDK21)
  • Spring测试框架全面解析
  • 【JavaSE】异常处理学习笔记
  • GRIT:让AI“指着图说话“的新思路
  • 【AGI】Qwen3模型高效微调
  • 234. Palindrome Linked List
  • ISOLAR软件生成报错处理(四)
  • 常见路由协议解析:从原理到应用场景
  • react-native的token认证流程
  • 运营商地址和ip属地一样吗?怎么样更改ip属地地址
  • 输配电行业国产PLM转型方案:南通禛华电气的云PLM研发转型
  • STM32通过KEIL pack包轻松移植LVGL,并学会使用GUI guider
  • 【AI论文】具身智能体与个性化:探索记忆利用以实现个性化辅助
  • 【教程】服务器如何防止GET/SYN洪泛攻击
  • 【c++】【数据结构】红黑树
  • Ansible模块——Ansible配置文件!
  • ansible中的inventory.ini 文件详解
  • 正规的网站制作服务电话/百度ai营销中国行
  • 重庆做网站制作的公司/厦门seo顾问
  • 网站网页设计怎么报价/网店seo排名优化
  • 品牌网站建设多少钱/宁波网站推广公司有哪些
  • 网站手机网页如何做/百度宣传推广费用
  • 无锡企业建设网站公司/湖北seo整站优化