分布式调度:解决资源与请求者的分配问题

分布式调度:解决资源与请求者的分配问题:

1. 单体调度:集中式调度器:

在这里插入图片描述
• 红色的方块是集群资源信息,调度器拥有全部的集群资源信息(蓝色方块)
 集中式调度器全局只有一个中央调度器,计算框架的资源申请全部提交给中央调度器来满足,所有的调度逻辑都由中央调度器来实现。
 调度系统在高并发作业的情况下,容易出现性能瓶颈,
 集中式调度器的实现就是 Hadoop MapReduce 的 JobTracker,实际的资源利用率只有 70% 左右,甚至更低。
 在多个计算作业同时申请资源的时候,中央调度器实际上是没有并发的,完全是顺序执行。

2. 双层调度:

 整个调度工作分为两层:
• 中央调度器:
o 中央调度器管理集群中所有资源的状态,它拥有集群所有的资源信息,按照一定策略(例如 FIFO、Fair、Capacity、Dominant Resource Fair)将资源粗粒度地分配给框架调度器。
• 框架调度器:
o 各个框架调度器收到资源后再根据应用申请细粒度将资源分配给容器执行具体的计算任务
在这里插入图片描述


o 紫色和绿色的圆圈所在的方框是框架调度器,中央调度器把全部资源的两个子集分别交给了两个框架调度器,这两个子集是没有重合的,这种机制类似于并发中的悲观并发。

3. 状态共享调度:

o 状态共享式调度大大弱化了中央调度器,它只需保存一份集群使用信息,就是图中间的蓝色方块,取而代之的是各个框架调度器,每个调度器都能获取集群的全部信息,并采用乐观锁控制并发。Omega 与双层调度器的不同在于严重弱化了中央调度器,每个框架内部会不断地从主调度器更新集群信息并保存一份,而框架对资源的申请则会在该份信息上进行,一旦框架做出决策,就会将该信息同步到主调度。资源竞争过程是通过事务进行的,从而保证了操作的原子性。
在这里插入图片描述

4.统一资源管理与调度系统的实现:Yarn

4.1 架构:

• 典型的主从架构。
在这里插入图片描述
 模糊的双层调度,准确来说是两次调度。
• 主调度器:ReSourceManager:
o 资源的空闲和使用情况。
o 监控任务的执行。
• 从节点:NodeManager:
o 主要负责Container声明周期,监控资源使用情况等,
o Container:
 Yarn的资源表示模型。
 Task:是计算框架的计算任务,运行在Container中。
 ApplicationMaster: 二级调度器,同样运行在Container中。

4.2 Yarn的任务执行流程图:

在这里插入图片描述
① 用户通过客户端向 Yarn 提交作业。
② RM通过调度器申请资源,用于启动作业的AM;如果申请成功,则AMS负责通知节点管理器在相应容器内 启动执行AM。
③ AM负责将作业划分为若干任务,并向RM请求启动任务所需的资源;RM接收到请求后,通过调度器分配资源,找到合适的容器后,将这些资源信息返回给AM。

④ AM根据资源信息,在任务间优化资源分配策略,确定后直接与资源所在的节点管理器联系,在对应的容器中启动任务,节点管理器负责容器的资源隔离。

⑤ AM在部分任务执行完成后 逐步向RM释放所占资源。

4.3 启动一个mapReduce作业: 步骤:

• 1. 客户端向 ResourceManager 提交自己的应用,这里的应用就是指 MapReduce 作业。
• 2. ResourceManager 向 NodeManager 发出指令,为该应用启动第一个 Container,并在其中启动 ApplicationMaster。
• 3. ApplicationMaster 向 ResourceManager 注册。
• 4. ApplicationMaster 采用轮询的方式向 ResourceManager 的 YARN Scheduler 申领资源。
• 5. 当 ApplicationMaster 申领到资源后(其实是获取到了空闲节点的信息),便会与对应 NodeManager 通信,请求启动计算任务。
• 6. NodeManager 会根据资源量大小、所需的运行环境,在 Container 中启动任务。
• 7. 各个任务向 ApplicationMaster 汇报自己的状态和进度,以便让 ApplicationMaster 掌握各个任务的执行情况。
• 8. 应用程序运行完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己。

若有不对之处,请指教~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值