当前课程知识点:大数据平台核心技术 > 第八讲 内存计算 > 内存计算 > 内存计算(主讲人:强琦)
我介绍一下阿里巴巴的
我们在内存计算
和实时计算方面的
一些经验
那么 近期我们也正式推出了
阿里巴巴的分析数据库服务
叫做ADS
大家可以看这个图
它其实所处的位置
它支持的业务响应延时
在1秒左右
很多是在100毫秒左右
它是进行OLAP分析
实施OLAP分析
它所处理的数据规模
在千亿到万亿之间
相比其他的OLAP的
或者数据库的
数据仓库的建模语言
其ADS无需建模
具备较高的灵活性
它的数据规模也在千亿级别
那么 ADS使用了
大量的数据库索引技术
和搜索的索引技术
它在成本计算模型上
跟Hadoop和Impala
还是有着明显的
自己独特的定位
也就是说 在请求次数
少于一定层数以内
它加工索引
加载索引的成本
高于运行时成本
这时候用它是不划算的
但是 高于这个成本以后
它基本上的使用成本
不会随着你的
调用次数而增加
基本上是一个平的
所以可以看到
当调用次数高的时候
线性扩展的时候
Hadoop Impala的模式
它的成本会随着
调用次数而线性成长
而ADS不会
这是它的场景模型
而它完全兼容SQL92的标准
刚才说到 它大量引入了
数据库搜索的索引技术
我们最开始提到
BigData技术
大部分在使用扫描
而我们引入Index
引入大量元数据
支持选 就是走Index
跳略过无效用数据
比如说我元数据里头
已经有这个数据块的
最大值 最好值
那么 你这个SQL
又是一个min max
那我就很清楚
整个数据块是不是需要跳过
而不需要去scan
出每条数据
当然 对于索引没有命中
块没有跳过的数据
我们依然采用扫的模式
ADS支持数据库的
CRUD操作
支持多租户
以服务化的形式提供服务
那么 可以看到ADS
也分成了三大部分
一部分是Console
其中分为WebConsole
和AdminConsole
那么 接下来一块
是控制集群
它的管理 整个集群的Cluster
完全用户的Quota
接下来是计算集群
计算集群分成前端节点
和计算节点
计算节点是真正一个任务
也就是SQL下发执行的地方
在每个Compute Node上
执行相应表 相应分区
计算任务后
本地将这个表的本分区任务
进行计算后
汇总到一台Compute Node上
进行全局的汇总
最终返回到
Front Node
给用户返回
这里我再强调一下
DBMaster
DBMaster就是
我们之前提到的
这个数据如何摆放
我已经有了这些
Compute Node资源
我这些数据库的这些分区
这些分区包括了正向的数据
和Index怎么摆放的问题
经常被一起使用的数据
和分区数据
比如说大量的用户SQL
都会使用到的
几张表的几张分区一起用
那么 DBMaster
就会把它们尽量加载在
一个物理进程里头
来尽量使得整个计算本地化
它的进程
当然 整个ADS架设到
阿里巴巴飞天的技术平台上
所以 ADS做到快的原因
主要有第一 整个集群
预先拉起
第二 制定丰富的数据结构
比如Index和元数据
帮助计算跳数据 挑数据
最大减少扫数据
而ADS采用大量的
基于成本的优化
和基于规则的优化
以及HBO的优化
来针对不同的摆放策略
不同的数据类型
不同的元数据
振动用户的SQL
进行物理执行计划
和SQL改写
反过头来 我们的课程名字叫
内存计算
其实 关于什么是内存计算
或者是什么不是内存计算
大家的定义都是比较广义
就没有一个精确的定义
所以 在我看来
或者说你可以认为
现在没有不是
内存计算的计算
因为大家都在最大化的
利用内存
所以 在我看来
所谓的狭义定义
应该是最大化利用内存容量
并且可编程
框架内容错
可以对数据在内存的摆放
Replication和partition
进行有效控制
并且内存数据
进行最大化的reuse
这里我再强调一下
流式计算课程里头的
我们引入的Batch
我们可以把一批数据
很大批数据切批
然后每批相对比较小
都可以放在内存里头运行
而Batch内进行串行运算
Batch间进行并行运算
因为我们的Batch
可以切得足够小
所以MapReduce
都可以在内存中运行
然后 它所需要的数据
Sort Merge
都可以在内存完成
而Merge是一个
update oldValue的过程
内存就是我们
原来提到过的state
不管你有多大的数据
其实你都是在update
那个数据
所以 只要我们的批切得合适
我们都可以把它变成
全内存的运算
即便它超出内存
物理超出内存的大小
我们也可以让它全内存运算
我们的Snapshot state
可以引入Incremental
一个snapshot机制
进行有效的容错
和存储访问
并且线性扩展
这个在流计算
那堂课上已经进行了介绍
我们反过头来
再说编程这件事情
我们都认为编程有三大要素
一个是数据结构
一个是功能逻辑
比如说加减法
压缩 解压缩
另一个很重要的是控制逻辑
就是if-else switch-case
来控制整个逻辑的流向
那么 MapReduce引入后
极大地弱化了数据结构
也就是说 你完全不能在
上面去做变成
整个抽象功能
作为Map和Reduce的
核心功能
而控制逻辑
被局限化到一个Dag
你必须把你的控制逻辑
表示成一个Dag
不可能去做到if-else
这种事情
你说两边都发
并且在一个地方上发过滤
来达到这样的功能
而像Spark的引入
又让我们看到
以数据结构为核心
数据结构的操作
其实是在定义一个血缘
有更多的功能言语
不仅是MapReduce
但是 更重要的是
开发控制逻辑
不再是局限于Dag
用户可以在他的代码里头
任意写开放逻辑
if-else for循环就是迭代计算
这一点非常重要
传统分布式计算
有哪些基本问题
第一个问题
用户复杂的
控制逻辑如何表达
如果我们要开放的话
第二个
Dag运行效率如何保证
因为Dag每步都要落盘
落物理磁盘
这个前面我们也反复介绍了
另外一个 用户在使用
或者是复用数据的时候
目前只有通过
Distributed cache
那么 我们如何去扩展
在迭代计算中
关系表不可能做到
完全加载的每一个节点
那么 实际业务中的数据
又如何复用
任务间如何共享数据
刚才其实说到的是任务内
不同的迭代轮(音)
怎么复用数据
还有一个就是
任务间如何共享数据
当然 这又引入另外一个问题
可以细分
就是同类任务间
如何共享数据
不同类型任务间
如何共享数据
比如说我能不能
进行一个图的在线计算
结果进行一次
adhoc的查询
这就是不同类型间的任务
怎么去共享数据
那么 还有一个核心的问题
我们如何看待数据结构
比如说分布式Dataset的问题
进而 我们可以看到
一个在线的adhoc的系统
离线加工基线
加工基线版本的数据
加工索引
那么 我要支持时时数据
那么 流式的我不断合并增量
然后呢 增量合并变大了以后
我又合并成一个新的基线
这个基线版本在不断的加载
整个过程往复轮替
最终 提供在线服务
一个业务使用多种计算
它的数据会在离线
流式 迭代
在线系统中不断扭转
也就是说 一份业务数据
如果使用4种计算形态
那么 数据就会被4倍的存储
-主讲人:武永卫
-主讲人:程永
-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--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题