分布式系统原理_分布式系统调度架构,底层原理分析与实战

各位志同道合的朋友们大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题

昨天分享了分布式系统架构中的单体调度架构,并且详细的学习了相关调度算法(「分布式技术」分布式系统调度架构之单体调度,非掌握不可),虽然单体调度架构简单易用,但是它是落在中央处理器中的,所以也就有了单机瓶颈问题,这样对于一些多类型的服务就会受限。

正是因为单体调度的一些缺陷,所以聪明的程序员们就想出了一个两层调度来解决这种问题。

什么是两层调度?

两层调度就是将资源和任务分开调度,也就是说其中一层调度器做资源的管理和分配,另一层调度器则负责任务与资源的匹配。

资源的使用状态同时由中央调度器和第二层调度器管理,中央调度器从全局上进行资源的管理和分配,然后将资源分配到第二层调度器,接着第二层调度器就可以进行任务和资源的匹配。所以第二层是可以有多个调度器的,用来支持不同类型的任务,比如CPU密集型的以及io密集型的任务。

f75df0b687fa877642d298b92cd2c7da.png

如上图所示,scheduler-1就是第一层中央调度器,主要负责收集和管理集群中资源信息;上面的scheduler-2就是第二层调度器

  1. scheduler-1将收集的集群资源信息发给scheduler-2。
  2. scheduler-2根据任务需要的资源情况和scheduler-1发送来的资源信息进行相关匹配和调度。

第一层调度器依然是一个经简化的中央调度器,一般是放在分布式集群管理系统中的,而第二层调度器是由我们各个应用程序框架完成。这两层调度器的职责分别是:

  • 第一层调度器负责管理资源同时像框架去分配资源
  • 第二层调度器接收第一层调度器分配来的资源,然后根据实际任务情况和收到的资源进行匹配

有哪些项目都采用了两层调度结构呢?这样的集群管理系统很多,其中较为典型就是 Apache Mesos 和 Hadoop YARN。下面我们就以Mesos为例,来一起学习下两层调度的架构设计以及它的分配算法。

两层调度的原理

Mesos 它是负责底层资源的管理和分配,但并不涉及存储以及任务调度的相关功能,所以,如果它要实现类似Brog 那样的资源和任务管理,还需要一个上层框架的配合。

Mesos 自己实现的调度器就是第一层调度,负责集群资源管理,接着将第二层

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值