5 YARN

一、YANR 架构

在这里插入图片描述
图中一共有 2 大块元素,一块是 ResourceManager,一块是 NodeManager 。

ResourceManager: 可以看到,ResourceManager 是负责资源的管理与调度,再加上一个启动 ApplicationMaster,注意:这里的调度是纯粹的资源调度,不涉及任务调度,任务调度应该是在 AM 中完成的。

NodeManager:NodeManager 是单台节点上的资源和任务管理器,在 NodeManager 上面完成计算功能。

ApplicationMaster:负责向 RM 申请资源,启动、监控任务,是 NodeManager 和 ResourceManager 之间的桥梁,避免它两之间通信可以做到解耦。当用户向 ResourceManager 提交任务后,RM 会首先找到可用的 NM,在其中分配一个 Container,在其中启动 AM,。

Container: Container 是资源的抽象,就像我们 Windows 系统中的虚拟机,虚拟机可以利用 Windows 的资源,然后再这个资源上可以启动 Linux 或者 Mac,同样,在 YARN 中的Container 中,我们也可以启动 MapReduce 或者 Spark 的任务。

​ 要理解这些元素的作用是什么,主要还是得理解整个框架的工作流程。

​ 综上,YARN 做到了解耦合,我们随便上来一个计算框架,只要把自己的任务调度器加进来,然后把 Task 换成自己对应的 Task 即可。

二、YARN 的资源调度模型

2.1 Capacity 调度

在这里插入图片描述

​ Capacity 是以队列为单位划分资源的,每个队列预先设定一定比例的资源最低保证和使用上限,每个用户提交任务时,yarn 首先判断哪个队列的资源利用率最低,就把这个任务分配到了该队列;当一个队列中的资源有剩余时,可以先把资源借给其它队列,当自己要用的时候,其它队列就会释放资源后归还给该队列。

2.2 Fair 调度

在这里插入图片描述

​ 公平调度器是以整个集群的资源为划分单位的,如:现有 A,B 两个用户,A 用户先提提交了一个任务 A1,这时 A1 将可以使用集群的全部资源,它所用的资源用 queueA 来表示;后来用户 B 也提交了一个任务 B1,此时基于公平, A1 和 B1 平分资源,各使用 50% 的资源,B1 所占的队列称为 queueB;再后来,用户 B 又提交了任务 B2,此时 B2 和 B1 共同使用 queueB 中的资源,它们各占 queueB 资源的 50%,各占整个集群资源的 25%。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值