当前课程知识点:大数据平台核心技术 > 第三讲 资源管理与任务调度 > 资源调度 > 资源调度(主讲人:陶阳宇)
以上是给同学们分享的
关于伏羲如何
进行任务的调度
那么接下来再给大家
分享一下飞天调度系统
在解决资源调度问题时的
一些细节
首先分布式系统
是高并发的多任务系统
这里我向大家展示一下
阿里云机房中
一个集群上的任务数量曲线
从图中大家可以看到
平均有1000个任务在运行
那么问题来了
如何将集群的
CPU/Memory资源
在多个任务之间调度
有些同学可能会说
随机分配是不是就可以了
事实不是这样的
资源调度要考虑
以下几个目标
首先一个集群的资源
利用率需要最大化
第二个每个任务的
资源等待时间
必须最小化
第三个要能支持
分组控制资源的配额
第四点是要支持
临时的紧急任务
那我们来看一下
飞天分布式调度
是如何做资源调度的
首先给大家介绍一下
整体的这个架构
Fuxi Master与Tubo
这两个角色配合起来
完成资源的调度过程
Tubo是每个节点上都有的
它主要负责收集
每个机器的硬件资源
像CPU Memory
磁盘 网络等等
并发送给Fuxi Master
而Fuxi Master
是一个中控节点
它负责整个集群的资源调度
当启动一个计算任务的时候
会生成一个APP Master
APP Master它会根据
自己的需要向Fuxi Master
申请资源
当计算完成不再需要的时候
归还这个资源
首先给大家介绍一下
飞天分布式调度
在分配资源时的
第一种策略
我们称为优先级和抢占
每一个计算任务
我们称之为job
它在提交时会带上一个
priority值
也就是一个优先级值
它是一个整数
越小 优先级越高
这点可以理解为排队在前面
相同优先级的job
按照他们的提交时间来排序
先提交的优先级比较高
那么Fuxi Master在调度时
资源优先分配给
高优先级的job
剩余的资源继续分配给
次高优先级的job
如果有临时的
高优先级的任务加入
Fuxi Master会开启
抢占功能它会从当前
正在运行的任务中
从最低优先级的任务
开始强制收会资源
以分配给紧急任务
这个过程称之为抢占
抢占是为递归进行的
直到被抢的任务
优先级不高于紧急任务为止
换句话说一个紧急任务
不能够抢比它自己优先级
更高的任务
从这个图中我们可以看到
当插入了一个
紧急优先级的任务
如图中的红色方块所示
它需要获得一份资源
那Fuxi Master会从
队尾的任务开始
去剥夺它们的资源
来分配给这个紧急任务
但是这个紧急任务
之前的任务也就是那些
比抢占任务优先级
更高的任务是不会被抢占的
接着给大家介绍一下
在资源分配时的
第二个策略
公平调度
当有资源时
Fuxi Master依次轮询的
将部分资源分配给各个job
这样做的好处是
如果有job体积非常大
意思是说
它需要非常多的资源
那么它有可能
将整个集群的资源全部要走
从而使那些后面排队的job
可能会出现饿死的情况
公平调度就是为了
解决这种问题的
首先它会按优先级分组
同一优先级组内的平均分配
如果有剩余资源
再去下一个
优先级组进行分配
例如对于已有的任务
我们按照优先级进行分组
当有新的资源来的时候
我们首先在最高优先级组内
进行平均配
如果有剩余资源
再在次优先级组内
进行平均分配
依此类推
接着给大家介绍
资源分配时的第三个策略
称为配额 也叫Quota
多个任务组成一个组
通常是按照不同的业务
进行区分的
例如淘宝 支付宝
小微金服
或者是阿里妈妈
那集群管理员
会设立每一个组的资源上限
意味着这个组最多
能使用这么多CPU
Memory 磁盘等等
这个值上限
我们称之为Quota
每个组的job
所分配的资源总和
不会超过该组内的Quota
当然如果每一个组内
没有用完的Quota是可以
分享给其他的组的
会按照Quota的比例
进行均分
比如最后一个job
它有部分的资源不再使用了
那么这部分空闲的资源
会分给前面的三个组
那每个组分多少
是按照前三个组它们的比例
来分配的
在实际的运用场景中
不同的策略是可以
配合起来使用的
这里给大家展示一下
当开启了多种策略之后
Fuxi Master的调度性能
从数据中同学们可以看到
绝大多数的调度
都可以在40微秒左右完成
-主讲人:武永卫
-主讲人:程永
-QUIZ--作业
-大纲
-初步认识大数据对分布式存储系统的需求
-理解大数据对分布式存储系统的需求
-具体说明大数据对分布式存储系统的需求
-大规模分布式存储的挑战
-小概率事件-Raid卡故障
-分布式存储系统举例
-分布式存储系统重要功能设计要点剖析
-链式写正常流程
-写流程的另一种常见方式:主从模式
-链式写异常流程
-写异常处理的另一种方法-Seal and New
--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)
-读正常流程
-读流程优化-BackupRead
-IO QoS
-数据正确性:checksum
-数据可靠性-Replication
-数据均衡-Rebalance
-垃圾回收-Garbage collection
--垃圾回收-Garbage collection(主讲人:姚文辉)
-Erasure coding
-Erasure coding(3,2)写入和读取过程
--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)
-元数据管理的高可用性和可扩展性
-元数据管理的高可用性
-Paxos概要
-Raft
-元数据管理的可扩展性
-不同存储介质的特性
-盘古混合存储
-QUIZ--作业
-阿里云飞天分布式调度
-任务调度
-资源调度
-容错机制
-规模挑战
-安全域性能隔离
-分布式调度的发展方向
-QUIZ--作业
-数据格式和抽象
-分布式编程模型
-MapReuduce编程模型
-关系型数据编程模型
-分布式图计算模型
-分布式编程未来展望
-QUIZ--作业
-分布式事务
-分布式一致性算法
-两阶段提交与三阶段提交
-实践--介绍
-关系型计算基本原理_1
-关系型计算基本原理_2
-分布式环境中的连接计算和聚合计算
-其他计算和物理优化
-QUIZ--作业
-提纲
-课程背景介绍
-前序知识
-分布式节点距离计算法则
-数据分布策略
-分布式计算调度
-数据就近原则计算如何容错
-ODPS跨集群数据依赖
-QUIZ--作业
-主讲人:谢德军
--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)
-增量计算和流式计算
-与批量计算的区别
-业界典型系统技术概要分析
-核心技术
-消息机制
-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制
--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)
-StreamSQL
-QUIZ--作业
-软硬件趋势、分布式计算简史与内存计算
-分布式计算
-内存计算
-统一的计算框架
-业界经典系统技术分析-spark&flink
--业界经典系统技术分析-spark&flink(主讲人:强琦)
-QUIZ--作业
-主讲人:褚葳
-QUIZ--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题