当前课程知识点:大数据平台核心技术 > 第三讲 资源管理与任务调度 > 规模挑战 > 规模挑战 (主讲人:陶阳宇)
解决了容错问题
接下去我们问一个问题
这个系统在规模上
最大能支撑到多少台机器呢
分布式系统设计的
主要目标之一就是横向扩展
称之为scale-out
现在阿里云飞天
在2013年时已经支撑了
单个集群5000个节点
并发1万个任务
在做横向扩展设计的时候
有两个要点
第一个是多线程异步
第二个是增量的资源调度
多线程异步是编写
分布式程序一个非常重要
而且常用的技术手段
这里我以
处理网络通信的地方为例
给同学们分享一下
这里每个APP Master
都需要跟Fuxi Master
进行资源通信同时也需要跟
很多Tubo进行通信
以启动他们自己的
APP Worker
那么APP Master在处理
这些网络通信
我们称之为RPC
RPC通信的时候必须采用
线程池来处理
比如图中所示的
我们四个线程池
来处理这些消息
但是同学们也能
观察到这个现象
由于Fuxi Master
是一个中控节点
而Tubo的数量非常众多
如果将这些消息
都在同一个线程池中处理
Fuxi Master的消息有可能
会被大量的Tubo消息阻塞
这个问题我们称之为
分布式系统中的
对头阻塞问题
那在伏羲系统当中
为了规避这个问题
我们设立了
一个独立的线程池
来处理Fuxi Master的消息
另外一个线程池
来处理Tubo的消息
将线程池进行分开
我们通常称之为泳道
独立的泳道能有效的解决
Fuxi Master的消息
被对头阻塞的问题
伏羲解决规模问题的
另一个技术点是增量
伏羲采用增量的消息通信
和资源调度
这里我用一个例子来说明
增量调度的语义
我们通过一个例子
来给同学们介绍一下
伏羲所采用的
增量资源调度的协议
左边这个为我们的中控节点
Fuxi Master
右边为某一个APP Master
如果说APP Master
需要1000份资源
那最直接的一种实现方式
是直接将我要1000个资源
这样的消息直接
发送给Fuxi Master
Fuxi Master在接到
消息之后可能当前的
剩余资源只有200份
那它将说我分配给你200
这样的消息
发送给APP Master
那APP Master还会
继续发送消息
我还要剩余的800
Fuxi Master说
此时没有资源
我分配0个给你
那APP Master在下一次
通信的时候需要继续说
我还要剩余的800
依此类推
可能某一个时刻
Fuxi Master还能
分一点资源下来
这个就是最直观的
全量消息通信
每一次APP Master
提出请求的时候
都要指明它总共需要多少
而在伏羲的实现当中
为了减小这种通信量
和不必要的开销
我们采用这种增量的语义
它是这样工作的
首先APP Master
发送一个请求说
我要1000个资源
Fuxi Master收到之后
将当时空闲的200个资源
返回给APP Master
之后APP Master无需
再提交请求说我还需要800
因为Fuxi Master会将这
1000个请求记录下来
等到某一时刻
又有更多的
比如150个资源释放出来了
它直接将150个分配结果
发送给APP Master即可
这期间APP Master
无需再发多余的网络通信
以上是给同学分享的
分布式调度模块
伏羲所做的一些考虑
包括任务调度 资源调度
容错机制和
规模上的一些挑战
-主讲人:武永卫
-主讲人:程永
-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--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题