调度框架学习笔记(1)

参考资料:

计算架构:分布式调度技术演变

集群资源管理与调度概要

1 知识点

1.1 什么是调度

通常所说的调度(schedule)是和时间有关的。

单 CPU 的时间片调度

时间作为唯一的不可逆转的资源,一般是划分为多个时间片来使用。就计算机而言,由于 CPU 的速度快的多,所以就有了针对 CPU 时间片的调度,让多个任务在同一个 CPU 上运行起来。某一时刻CPU还是单任务运行的。

多 CPU 协作

为了在同一时间运行更多的任务,或者多个处理器一起工作完成一个任务目标,就需要一个协调者——这就成为一个分布式系统,就单个数据中心或者小范围来说,这就是集群。

资源调度

如果让一个分布式系统运行多个任务,每个任务对分布式系统中的资源必然产生竞争,时间调度就发展到资源调度。【资源调度的概念】

1.2 有哪些资源

内存、CPU、网络资源、磁盘 I/O

1.3 资源调度的目的

通过一定策略把资源分配给用户提交到系统里的各种任务。在计算机中资源管理与调度是根据具体场景而设定的,其实终极目的都是为了使资源分配的更加合理。

1.4 资源调度的意义

调度直接影响到运行集群的开销,好的资源调度框架,可以大大提高资源利用率,降低运营成本。一个糟糕的调度框架会导致集群的资源利用率很低,那些昂贵的机器资源则会白白浪费。

1.5 资源管理方式

静态资源划分

优点:简单,固定的硬件资源给固定的计算框架使用,各个框架各行其是,互不干扰。

扫描二维码关注公众号,回复: 4625394 查看本文章

缺点:整体资源利用率不高,经常出现集群计算系统资源不足。

典型场景:公有云的云计算,划分虚拟机。

动态与静态对比

  1. 动态会根据任务即时需要分配资源,不会出现资源闲置且不可用,也不会出现任务忙且不可得资源的尴尬局面。总之增加资源利用率,降低硬件成本。
  2. 增加数据共享能力,共用的资源存储一份就行啦,
  3. 说白了就是支持多类型计算框架和多版本计算框架,使用资源管理与调度平台可以实现两者平滑切换,给运营带来便利。

2 动态资源管理抽象模型

资源管理与调度系统:YARNMesosCoronaQuincy,从上述系统抽象两个模型:

2.1 动态资源管理与调度的概念模型

概念模型 三要素:

  1. 资源组织模型:组织起来方便分配,如 all resource->group->pool 三级队列,或者平级多队列或单队列了等
  2. 调度算法:熟知的 FIFO、公平调度、能力调度、延迟调度等,说白了就是按照什么方式分配资源
  3. 任务组织job 分配,比如全局队列、机架队列、节点队列等。说白了就是如何把任务组织起来

2.2 动态资源管理通用架构

通用架构

  1. 每台机器都有节点管理器,负责收集它所在机器的资源使用情况,分配的任务放到不同容器执行,彼此隔离开,避免 job 彼此干扰。在这里它要给 资源收集器 汇报任务,这个 收集器 在把相关的信息反应给 资源池资源池列出目前可用的资源。
  2. 通用调度器构成:资源收集器、资源调度策略,资源池,工作队列。
  3. 调度策略:FIFO、公平调度、能力调度等,在这里系统应用者可根据具体情况设定符合业务状况的调度策略,当用户新提交作业时,其进入工作队列,等着分配使其可启动的资源。

        在这里系统应用者可根据具体情况设定符合业务状况的调度策略,当用户新提交作业时,其进入工作队列,等着分配使其可启动的资源

猜你喜欢

转载自www.cnblogs.com/zhance/p/10166667.html