首页 > 编程语言 >《分布式技术原理与算法解析》学习笔记Day10

《分布式技术原理与算法解析》学习笔记Day10

时间:2023-02-13 21:45:25浏览次数:56  
标签:机器 调度 算法 Day10 任务 节点 资源 分布式

调度框架:单体调度

什么是调度?

分布式系统架构的目的是将多个服务器资源管理起来,对外提供服务。调度是指为用户任务寻找合适的服务器的过程,它是分布式系统中一个非常重要的组件,提供了多种调度策略,负责完成具体的调度工作。

什么是单体调度?

分布式系统中的单体调度是指一个集群中只有一个节点在运行调度进程,该节点对集群中的其他节点具有访问权限,可以对其他节点的资源信息、节点状态进行统一管理,同时根据用户下发的任务对资源的需求,在调度器中进行任务和资源匹配,然后根据匹配结果将任务指派给合适的节点。

单体调度器具有全局资源视图和全局任务,可以实现对任务的约束并实施全局性的调度策略。

在单体调度框架中,多个Node节点会将本节点的State上报给Master节点。Master节点将Node State信息记录在Cluster State模块中,Cluster State模块用于管理集群中节点的资源等状态。Master节点中的Scheduling Logic模块用于进行Tasks与节点资源的匹配。当Master需要下发任务时,Cluster State模块会将节点的资源状态传送给Scheduling Logic模块,以便Scheduling Logic模块进行Tasks与资源匹配,并根据匹配结果将Task发送给匹配到的节点。

具体结构和流程如下图。

单体调度的特征:

  1. 单体调度器可以很容易实现对作业的约束并实现全局性的调度策略,因此适合作为批处理任务和吞吐量较大、运行时间较长的任务。
  2. 单体调度系统的状态同步比较容易且稳定。
  3. 调度算法只能全部内置到核心调度器当中,因此调度框架的灵活性和可扩展性不高。
  4. 单体调度存在单点故障发生的可能性。

Borg调度设计

Borg是典型的集中式集群管理系统,Scheduler是它的核心组件。

Borg系统中包括作业(Job)和任务(Task):

  • 作业:它通常包括作业名称、作业生产者和作业包含的任务数量,它可以有一些约束来限制作业中的任务运行在指定的机器上,这些约束可以是刚性的,也可以是柔性的。一个作业只能在一个集群中运行。
  • 任务:一组Linux进程,运行在一台机器上的一个容器内或者直接运行在节点上。

一个作业可以包含多个任务,作业类似于用户在一次事务处理或计算过程中要求计算机所做工作的总和,而任务就是一项具体的工作。

多个任务可以在多台机器上同时运行,从而提高系统的并行程度,调度器会来负责将任务分配给合适的机器。

Borg中的调度是以任务为单位的,不是以作业为单位。

Borg调度算法的核心思想是“筛选可行,评分取优”。它分为两个阶段:

  • 可行性检查:找到一组可以运行任务的机器。
  • 评分:从可行的机器中选择一个合适的机器。

两种不同的匹配算法:

  • 最差匹配算法:将任务尽量分散到不同的机器上,以并行的方式提高任务执行的速度,它的问题在于每个机器都会有少量无法使用的剩余资源,称为”碎片资源“。
  • 最佳匹配算法:把同一个机器上的任务塞得越满越好,这样可以空出一些空闲的机器,用于部署计算资源需求大的任务。它类似于”把所有鸡蛋放到一个篮子里“,当对应的服务器发生故障后,运行在这台服务器上的任务会受影响。它不利于有突发负载的应用。

一般来说,对于资源紧缺,且业务流量比较规律,基本不会出现突发情况的场景,可以选择最佳匹配算法, 如果资源比较丰富,且业务流量会经常出现突发情况的场景,可以选择最差匹配算法。

Borg的任务部署机制支持优先级高的任务抢占优先级低的任务资源,如果评分算法选中的机器上没有足够的资源来运行新任务,Borg会抢占该机器上已部署的低优先级任务的资源,从最低优先级的任务开始,逐级向上抢占任务资源,直到可用资源足够运行新任务。其中,被强占的任务会放回到调度器的等待队列中。

标签:机器,调度,算法,Day10,任务,节点,资源,分布式
From: https://www.cnblogs.com/wing011203/p/17117915.html

相关文章

  • ACM算法目录
    ACM算法目录数学基础C-CakeHDU-1722(数学)动态规划最长公共子序列(模板LCSL)P2430严酷的训练题解+P2347砝码称重(01背包)+P18025倍经验日(01背包问题......
  • 密码学简单数论笔记(2):最大公约数、扩展欧几里得算法和最小公倍数
      参考资料:1.https://www.bilibili.com/video/BV1x3411s7Sy/?spm_id_from=333.788&vd_source=e66dd25b0246f28e772d75f11c80f03c2.http://t.csdn.cn/diQ272.余红兵:《......
  • 毕业设计实现思路-算法部分
    原理已有AP的坐标信息是提前录入系统的,客户端是可以拿到这个信号的,拿到信号后与自己扫描到的周边信号信息进行运算,从而确定位置发现一个新的定位技术叫wifiRTT,根据往返时......
  • 代码随想录算法训练营Day12 栈与队列
    代码随想录算法训练营代码随想录算法训练营Day12栈与队列|239.滑动窗口最大值 347.前K个高频元素 总结239.滑动窗口最大值给定一个数组nums,有一个大小为 k......
  • Vue中的diff算法探析
    一、什么是diff diff 是什么?diff 就是比较两个树,render 会生成两颗树,一个新树newVnode,一棵旧树oleVnode。然后两棵树进行对比更新差异就是diff,全称是difference......
  • 代码随想录算法训练营Day12 栈与队列
    代码随想录算法训练营代码随想录算法训练营Day12栈与队列|239.滑动窗口最大值 347.前K个高频元素 总结239.滑动窗口最大值给定一个数组nums,有一个大小为 k......
  • hamilton路径-图论算法模板
    什么是哈密尔顿路径哈密顿图(哈密尔顿图)(英语:Hamiltoniangraph,或Traceablegraph)是一个无向图,由天文学家哈密顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过......
  • Kruskal’s算法正确性的证明
     Kruskal’s算法产生一棵最小生成树证明:设T是贪心法产生的解,U是最优解  设e是属于T但不属于U的成本最小的边;换言之,T中成本小于c(e)的边都在U中.设f是{e}+U产生的环路......
  • 一致性Hash算法
    最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天......
  • [数据结构] 排序算法的原理代码及可视化演示
    排序算法本文汇总了核心排序算法及其代码实现:-插入法:直接插入排序,折半插入排序,2-路插入排序(折半插入的改进版)(待更新),希尔排序(待更新)-交换法:冒泡排序,快速......