【Hadoop】YARN简述

本文介绍了YARN作为Hadoop资源管理器的功能及其三种调度器的工作原理:FIFOScheduler、CapacityScheduler和FairScheduler。通过这些调度器可以有效管理集群资源,支持多种计算引擎如MapReduce、Spark和Flink。

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

1. YARN总述

在这里插入图片描述
       YARN是Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。如上图所示,从Hadoop2开始,官方把资源管理单独剥离出来,主要是为了考虑后期作为一个公共的资源管理平台,任何满足规则的计算引擎都可以在它上面执行。YARN可以实现HADOOP集群的资源共享,不仅仅可以跑MapRedcue,还可以跑Spark、Flink。
       YARN主要负责集群资源的管理和调度 ,支持主从架构,主节点最多可以有2个,从节点可以有多个。其主节点称为ResourceManager,主要负责集群资源的分配和管理;从节点称为NodeManager,主要负责当前机器资源管理。
       YARN主要管理内存和CPU这两种资源类型。当NodeManager节点启动的时候自动向ResourceManager注册,将当前节点上的可用CPU信息和内存信息注册上去,所有的NodeManager注册完成以后,ResourceManager就知道目前集群的资源总量了。

2. YARN调度器

       YARN是做资源管理调度的,它一共有三种调度器,分别是:

  • FIFO Scheduler:先进先出(first in, first out)调度策略;
  • Capacity Scheduler:FIFO Scheduler的多队列版本;
  • Fair Scheduler:多队列,多用户共享资源。

2.1 FIFO Scheduler

在这里插入图片描述
       FIFO Scheduler是先进先出的,类似于数据结构中的队列,如果你的任务申请不到足够的资源,那就得等待,等前面的任务执行结束释放了资源之后再执行。这种调度机制在有些时候是不合理的,因为一些任务的优先级比较高,提交上去立刻就应该开始执行,这种机制就实现不了。

2.2 Capacity Scheduler

在这里插入图片描述
       Capacity Scheduler是FIFO Scheduler的多队列版本,它先把集群中的整块资源划分成多份,可以人为的给这些资源定义使用场景,例如图中queue A中运行普通的任务,queue B中运行优先级较高的任务。这两个队列的资源是相互独立的,而且各队列内部还是按照先进先出的规则进行。
       在实际工作中一般都是使用这种调度器( CapacityScheduler)。从Hadoop2开始,Capacity Scheduler为集群中的默认调度器。

2.3 Fair Scheduler

在这里插入图片描述
       Fair Scheduler支持多个队列,每个队列可以配置一定的资源,每个队列中的任务共享其所在队列的所有资源,不需要排队等待资源。假设我们向一个队列中提交了一个任务,这个任务刚开始会占用整个队列的资源,当再提交第二个任务的时候,第一个任务会把他的资源释放出来一部分给第二个任务使用,两者在这段时间是并行执行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaoql

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值