深入理解 Hadoop (七)YARN资源管理和调度详解

本文详细介绍了HadoopYARN的资源调度体系,包括初始的FIFO机制、HOD和YARN调度器的特点,以及CapacityScheduler的容量保证、灵活性和资源抢占策略。同时对比了CapacityScheduler与FairScheduler的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深入理解 Hadoop 系列文章已完结,总共七篇文章,直达链接:
深入理解 Hadoop (一)网络通信架构与源码浅析
深入理解 Hadoop (二)HDFS架构演进
深入理解 Hadoop (三)HDFS文件系统设计实现
深入理解 Hadoop (四)HDFS源码剖析
深入理解 Hadoop (五)YARN核心工作机制浅析
深入理解 Hadoop (六)YARN核心设计理念与工作流程剖析
深入理解 Hadoop (七)YARN资源管理和调度详解

资源调度解决方案探讨

Hadoop 最初是为批处理设计而生,对于资源管理和调度,仅仅支持 FIFO 的调度机制。随着 Hadoop 的发展和流行,单个 Hadoop 集群中的用户量 和 应用程序类型不断增加,适用于批处理场景的 FIFO 调度机制不能很好地利用集群资源,也不能够满足不同应用程序的服务质量要求,因此需要设计适用于多用户的资源调度器。

  • HOD(Hadoop On Demand)调度器:将物理集群,虚拟成多个 Hadoop 集群。类似于 Flink On YARN : Session Cluster 模式
    • 优点:完全隔离
    • 缺点:运维难度高,负载均衡引起的资源利用率不高,不能实现数据本地性计算特性
  • YARN 调度器:支持多队列多用户
    • 优点:一个集群只有一套资源管理系统,内部运行的每个 Application 都能使用到集群任何节点上的资源,简而言之,将资源划分成多个队列实现资源隔离,但是每个队列都是横跨整个集群的。
      YARN 调度器将整个 Hadoop 集群逻辑上划分成若干个拥有相对独立资源的子集群,而由于这些子集群实际上是公用大集群中的资源,因此可以共享资源,相对于 HOD 而言,提高了资源利用率且降低了运维成本。

就 YARN 的整体调度来说,采用双层资源调度模型:
第一层:ResourceManager 中的资源调度器将资源分配给各个 ApplicationMaster,由 YARN 决定。
第二层:ApplicationMaster 再进一步将资源分配给它内部的各个任务 Task,由用户应用程序 ApplicationMaster 决定。
由此可见,YARN 是一个统一的资源调度系统,只要满足 YARN 的调度规范的分布式应用程序,都可以运行在 YARN 中,调度规范:定义一个 ApplicatoinMaster,问 RM 申请资源,AM 自己来完成 Container 到 Task 的分配。
YARN 采用拉模型实现异步资源分配,资源调度器将资源分配给应用程序之后,暂存于缓冲区中,等待 ApplicationMaster 通过心跳来进行获取。大概流程如下:
在这里插入图片描述

YARN 资源管理

Hadoop-2.x 版本中的 YARN 在 MRv1 基础之上提供了三种可用资源调度器,分别是:

  • FIFO(First In First Out)
  • Yahoo! 的 CapacityScheduler(Hadoop 3.x 中的默认调度策略)
  • Facebook 的 FairScheduler

YARN 队列管理机制由用户权限管理和系统资源管理两部分组成:

  • 用户权限管理:管理员可配置每个叶子队列对应的操作系统用户和用户组,也可以配置每个队列的管理员,他可以杀死该队列中任何应用程序,改变任何应用程序的优先级等(操作系统的用户或者用户组 :队列 = n:n)队列管理员。
  • 系统资源管理:YARN 资源管理和调度均由调度器完成,管理员可在调度器中设置每个队列的资源容量,每个用户可用资源量等信息,而调
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值