Yarn的资源调度

YARN (Yet Another Resource Negotiator) 是 Hadoop 生态系统中的一个关键组件,用于资源管理和任务调度。它分离了资源管理和任务调度/监控功能,从而更好地提高了系统的可扩展性和资源利用效率。以下是关于 YARN 资源调度器的主要概念和功能:

主要组件

  1. ResourceManager (RM): 集群的中央控制组件,负责资源的管理和分配。它包含两个主要的子组件:

    • Scheduler: 负责分配资源给不同的应用程序。它不跟踪任务的状态。
    • ApplicationsManager (ASM): 负责管理应用程序的生命周期,包括接受作业提交、协商第一个容器来执行应用程序的 ApplicationMaster 以及监控 ApplicationMaster 的状态。
  2. NodeManager (NM): 每个节点上的代理,负责管理该节点上的资源和容器,处理来自 ResourceManager 的命令,并报告节点的健康状况。

  3. ApplicationMaster (AM): 每个应用程序都有一个独立的 ApplicationMaster,负责申请资源、监控和重新启动任务。它可以被视为应用程序的调度器。

资源调度

YARN 采用了多种资源调度算法,以满足不同的资源分配需求:

  1. FIFO Scheduler: 先来先服务的调度策略,作业按照提交的顺序被调度。
  2. Capacity Scheduler: 允许多租户共享资源,确保资源分配的公平性和高效利用。每个队列可以配置不同的容量,并且支持资源预留和抢占。
  3. Fair Scheduler: 尽可能公平地分配资源,使每个用户都能获得大致相等的资源份额。

工作流程

  1. 作业提交: 用户通过客户端提交作业到 ResourceManager。
  2. 资源申请: ResourceManager 分配第一个容器给 ApplicationMaster。
  3. 任务调度: ApplicationMaster 向 ResourceManager 申请更多的容器以执行任务。
  4. 任务执行: NodeManager 启动并监控任务容器。
  5. 任务完成: 任务完成后,资源被释放,ApplicationMaster 汇报任务状态并最终结束作业。

优势

  • 可扩展性: 能够管理大规模集群,支持数千个节点。
  • 资源利用率高: 通过高效的资源调度算法,提高集群的资源利用率。
  • 多租户支持: 支持不同用户和作业类型的资源分配需求。

YARN 的设计使得 Hadoop 可以不仅仅用于 MapReduce 工作负载,还可以运行其他类型的分布式计算,如 Spark、Tez 和其他大数据处理框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值