分布式技术原理与算法解析
聂鹏程
智载云帆CTO,前华为分布式Lab资深技术专家
立即订阅
5969 人已学习
课程目录
已更新 36 讲 / 共 34 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 四纵四横,带你透彻理解分布式技术
免费
01 | 分布式缘何而起:从单兵,到游击队,到集团军
02 | 分布式系统的指标:啥是分布式的三围
第一站:分布式协调与同步 (6讲)
03 | 分布式互斥:有你没我,有我没你
04 | 分布式选举:国不可一日无君
05 | 分布式共识:存异求同
06 | 分布式事务:All or nothing
07 | 分布式锁:关键重地,非请勿入
08 | 分布式技术是如何引爆人工智能的?
第二站:分布式资源管理与负载调度 (6讲)
09 | 分布式体系结构之集中式结构:一人在上,万人在下
10 | 分布式体系结构之非集中式结构:众生平等
11 | 分布式调度架构之单体调度:物质文明、精神文明一手抓
12 | 分布式调度架构之两层调度:物质文明、精神文明两手抓
13 | 分布式调度架构之共享状态调度:物质文明、精神文明多手协商抓
14 | 答疑篇:分布式事务与分布式锁相关问题
第三站:分布式计算技术 (4讲)
15 | 分布式计算模式之MR:一门同流合污的艺术
16 | 分布式计算模式之Stream:一门背锅的艺术
17 | 分布式计算模式之Actor:一门甩锅的艺术
18 | 分布式计算模式之流水线:你方唱罢我登场
第四站:分布式通信技术 (4讲)
19 | 分布式通信之远程调用:我是你的千里眼
20 | 分布式通信之发布订阅:送货上门
21 | 分布式通信之消息队列:货物自取
22 | 答疑篇:分布式体系架构与分布式计算相关问题
第五站:分布式数据存储 (5讲)
23 | CAP理论:这顶帽子我不想要
24 | 分布式数据存储系统之三要素:顾客、导购与货架
25 | 数据分布方式之哈希与一致性哈希:“掐指一算”与“掐指两算”的事
26 | 分布式数据复制技术:分身有术
27 | 分布式数据之缓存技术:“身手钥钱”随身带
特别放送 (3讲)
特别放送 | 分布式下的一致性杂谈
特别放送 | 徐志强:学习这件事儿,不到长城非好汉
特别放送 | 那些你不能错过的分布式系统论文
第六站:分布式高可靠 (5讲)
28 | 分布式高可靠之负载均衡:不患寡,而患不均
29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵
30 | 分布式高可用之故障隔离:当断不断,反受其乱
31 | 分布式高可用之故障恢复:知错能改,善莫大焉
32 | 答疑篇:如何判断并解决网络分区问题?
分布式技术原理与算法解析
登录|注册

12 | 分布式调度架构之两层调度:物质文明、精神文明两手抓

聂鹏程 2019-10-18
你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
我在上一篇文章中,与你分享了单体调度。单体调度的核心是,所有节点的资源以及用户的任务均由中央服务器统一管理和调度。因此,中央服务器很容易成为单点瓶颈,会直接导致其支持的调度规模和服务类型受限。
于是两层调度就出现了。那么,到底什么是两层调度呢,它是如何设计的,又有哪些调度算法呢?接下来,就和我一起打卡分布式调度架构的两层调度,去探寻这些问题的答案吧。

什么是两层调度?

在单体调度架构中,中央服务器的单点瓶颈问题,会限制调度的效率和支持的任务类型。中央服务器的性能会限制调度的效率,很好理解,但为什么会限制支持的任务类型呢?
简单地说,这是因为不同的服务具有不同的特征,对调度框架和计算的要求都不一样。比如说,你的业务最开始时只有批处理任务,后来发展到同时还包括流数据任务,但批处理任务是处理静态数据,流数据任务却是处理实时数据。显然,单体调度框架会随着任务类型增加而变得越来越复杂,最终出现扩展瓶颈。
那么,为了提升调度效率并支持多种类型的任务,最直接的一个想法就是,能不能把资源和任务分开调度,也就是说一层调度器只负责资源管理和分配,另外一层调度器负责任务与资源的匹配呢。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式技术原理与算法解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(11)

  • blackpiglet
    第一种调度方式很容易产生碎片,第二种方式应该是追求当前资源利用最大化的算法,道理上讲,应该是不容易产生碎片的,但感觉要实现任务优先级的排序课程中介绍的还不够,但实际应用应该有更复杂的实现吧。
    2019-11-15
    1
  • Eternal
    又落下了好多天,继续打卡,今天的总结:
    两层调度,第一层调度负责调度分配资源,将资源分配给第二层调度,第二层调度拿到资源后将任务和资源进行匹配,然后再将调度任务透传给第一层调度。

    这样做的好处:
    1.第一层调度只负责资源调度,第二层调度只匹配资源和任务,第二层调度和框架结合,可以很方便的扩展CPU密集型任务和IO密集型任务
    2.第一层的资源调度是稳定点:变化少的需求,第二层是变化点:变化多的需求,可以支持不同扩展不同的客户端,第二层在第一层的基础上实现,两层调度理解为将之前的一层调度拆分成2层,为了适应不同类型的任务和客户端,也可以理解成解耦吧

    两层调度让我想到了另外一个知识点:
    JVM中的线程池调度模型好像也是两级调度,第一级调度是线程池对线程的调度,第二级是JVM中线程映射到操作系统中的轻量级进程调度,一个是由程序自己控制,一个是由操作系统控制
    2019-10-30
  • 没有昵称
    老师你好 两层调度的时候,第一层将资源信息已经上报给 第二层,第二层根据上报的资源信息与任务匹配,在匹配完,二层为什么不直接下发任务给对应的服务器,而是下发给一层,由一层去调度,这样不是多了一步吗?难道一层还会修改任务的分配?

    作者回复: 这出于两点考虑:(1)架构的解偶性,第二层调度一般是框架的调度器,如果直接有第二层调度下发任务,则耦合很深,无法很少的适配不同的框架;(2)第二层调度统一管理资源的,如果上报给第二层调度的资源被使用,那么就不分配给其他框架,如果未被使用,第二层调度会将资源还回,第一层调度还可以上报给其他框架。

    2019-10-26
  • 张先生
    最大最小调度在没得到足够资源的情况下是释放已有资源还是等待其他进程释放资源?

    作者回复: 这个可以根据你的业务进行设计,这里只是任务与资源的匹配,当任务没有分配到足够资源时,任务不能执行。可以根据你的任务需求,下一次匹配时重新进行匹配,或者锁住改部分资源等待其他任务释放资源。

    2019-10-22
  • 任鹏斌
    老师两层调度中master节点挂掉怎么办?会重新选主还是怎么做的?

    作者回复: master节点的经典部署方式一般是一主两备,如果主故障了,会从备节点中选择一个主,也就是备升主。

    2019-10-21
  • 忆水寒
    没接触过,看的好痛苦。不过也要学习
    2019-10-20
  • VVK
    期待讲讲yarn。
    2019-10-19
  • Jackey
    仅从本文来看Mesos的两种算法都比较容易产生资源碎片吧,最大最小公平算法的例子中C和D有资源,但是用不了,这就是一种碎片吧。
    主导资源公平还没太想明白,如果A的任务需要6CPU和8G内存,B任务需要2CPU和2G内存时应该怎么分配?会不会分配完A就不管B了?这样资源碎片就更多了吧。等我去官网研究一下回来再看看😃
    2019-10-18
  • 请问Mesos的调度为什么不涉及存储呢?
    2019-10-18
    1
  • 有收获
    2019-10-18
  • leslie
    先打卡,再去官网看;mesos没碰过,先看完文章,双休日做作业。
    2019-10-18
收起评论
11
返回
顶部