当前课程知识点:大数据平台核心技术 >  第八讲 内存计算 >  内存计算 >  内存计算(主讲人:强琦)

返回《大数据平台核心技术》慕课在线视频课程列表

内存计算(主讲人:强琦)在线视频

内存计算(主讲人:强琦)

下一节:统一的计算框架(主讲人:强琦)

返回《大数据平台核心技术》慕课在线视频列表

内存计算(主讲人:强琦)课程教案、知识点、字幕

我介绍一下阿里巴巴的

我们在内存计算

和实时计算方面的

一些经验

那么 近期我们也正式推出了

阿里巴巴的分析数据库服务

叫做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倍的存储

大数据平台核心技术课程列表:

第一讲 大数据和ODPS

-主讲人:武永卫

--大数据处理平台概述(主讲人:武永卫)

-主讲人:程永

--大数据平台ODPS(主讲人:程永)

-QUIZ--作业

第二讲 分布式存储

-大纲

--大纲(主讲人:姚文辉)

-初步认识大数据对分布式存储系统的需求

--初步认识大数据对分布式存储系统的需求

-理解大数据对分布式存储系统的需求

--理解大数据对分布式存储系统的需求(主讲人:姚文辉)

-具体说明大数据对分布式存储系统的需求

--具体说明大数据对分布式存储系统的需求(主讲人:姚文辉)

-大规模分布式存储的挑战

--大规模分布式存储的挑战(主讲人:姚文辉)

-小概率事件-Raid卡故障

--小概率事件-Raid卡故障(主讲人:姚文辉)

-分布式存储系统举例

--分布式存储系统举例(主讲人:姚文辉)

-分布式存储系统重要功能设计要点剖析

--分布式存储系统重要功能设计要点剖析(主讲人:姚文辉)

-链式写正常流程

--链式写正常流程(主讲人:姚文辉)

-写流程的另一种常见方式:主从模式

--写流程的另一种常见方式:主从模式(主讲人:姚文辉)

-链式写异常流程

--链式写异常流程(主讲人:姚文辉)

-写异常处理的另一种方法-Seal and New

--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)

-读正常流程

--读正常流程(主讲人:姚文辉)

-读流程优化-BackupRead

--读流程优化-BackupRead(主讲人:姚文辉)

-IO QoS

--IO QoS(主讲人:姚文辉)

-数据正确性:checksum

--数据正确性:checksum(主讲人:姚文辉)

-数据可靠性-Replication

--数据可靠性-Replication(主讲人:姚文辉)

-数据均衡-Rebalance

--数据均衡-Rebalance(主讲人:姚文辉)

-垃圾回收-Garbage collection

--垃圾回收-Garbage collection(主讲人:姚文辉)

-Erasure coding

--Erasure coding(主讲人:姚文辉)

-Erasure coding(3,2)写入和读取过程

--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)

-元数据管理的高可用性和可扩展性

--元数据管理的高可用性和可扩展性(主讲人:姚文辉)

-元数据管理的高可用性

--元数据管理的高可用性(主讲人:姚文辉)

-Paxos概要

--Paxos概要(主讲人:姚文辉)

-Raft

--Raft(主讲人:姚文辉)

-元数据管理的可扩展性

--元数据管理的可扩展性(主讲人:姚文辉)

-不同存储介质的特性

--不同存储介质的特性(主讲人:姚文辉)

-盘古混合存储

--盘古混合存储(主讲人:姚文辉)

-QUIZ--作业

第三讲 资源管理与任务调度

-阿里云飞天分布式调度

--阿里云飞天分布式调度(主讲人:陶阳宇)

-任务调度

--任务调度(主讲人:陶阳宇)

-资源调度

--资源调度(主讲人:陶阳宇)

-容错机制

--容错机制(主讲人:陶阳宇)

-规模挑战

--规模挑战 (主讲人:陶阳宇)

-安全域性能隔离

--安全域性能隔离(主讲人:陶阳宇)

-分布式调度的发展方向

--分布式调度的发展方向(主讲人:陶阳宇)

-QUIZ--作业

第四讲 分布式编程模型的设计与演化

-数据格式和抽象

--数据格式和抽象(主讲人:吴威)

-分布式编程模型

--分布式编程模型(主讲人:吴威)

-MapReuduce编程模型

--MapReuduce编程模型(主讲人:吴威)

-关系型数据编程模型

--关系型数据编程模型(主讲人:吴威)

-分布式图计算模型

--分布式图计算模型(主讲人:吴威)

-分布式编程未来展望

--分布式编程未来展望(主讲人:吴威)

-QUIZ--作业

实践1:通过两阶段提交协议完成数据上传

-分布式事务

--分布式事务 (主讲人:冯骁)

-分布式一致性算法

--分布式一致性算法(主讲人:冯骁)

-两阶段提交与三阶段提交

--两阶段提交与三阶段提交(主讲人:冯骁)

-实践--介绍

--实践--介绍(主讲人:冯骁)

第五讲 离线分布式关系型计算

-关系型计算基本原理_1

--离线分布式关系型计算_1(主讲人:王鹏飞)

-关系型计算基本原理_2

--关系型计算基本原理_2(主讲人:王鹏飞)

-分布式环境中的连接计算和聚合计算

--分布式环境中的连接计算和聚合计算(主讲人:王鹏飞)

-其他计算和物理优化

--其他计算和物理优化(主讲人:王鹏飞)

-QUIZ--作业

第六讲 全局数据管理与调度

-提纲

--提纲(主讲人:罗李)

-课程背景介绍

--课程背景介绍(主讲人:罗李)

-前序知识

--前序知识(主讲人:罗李)

-分布式节点距离计算法则

--分布式节点距离计算法则(主讲人:罗李)

-数据分布策略

--数据分布策略(主讲人:罗李)

-分布式计算调度

--分布式计算调度(主讲人:罗李)

-数据就近原则计算如何容错

--数据就近原则计算如何容错(主讲人:罗李)

-ODPS跨集群数据依赖

--ODPS跨集群数据依赖(主讲人:罗李)

-QUIZ--作业

实践2:编写MR完成Group By+Join操作

-主讲人:谢德军

--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)

第七讲 流式计算的系统设计与实现

-增量计算和流式计算

--流式计算的系统设计与实现(主讲人:强琦)

-与批量计算的区别

--与批量计算的区别(主讲人:强琦)

-业界典型系统技术概要分析

--业界典型系统技术概要分析(主讲人:强琦)

-核心技术

--核心技术(主讲人:强琦)

-消息机制

--消息机制(主讲人:强琦)

-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制

--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)

-StreamSQL

--StreamSQL(主讲人:强琦)

-QUIZ--作业

第八讲 内存计算

-软硬件趋势、分布式计算简史与内存计算

--软硬件趋势、分布式计算简史与内存计算(主讲人:强琦)

-分布式计算

--分布式计算(主讲人:强琦)

-内存计算

--内存计算(主讲人:强琦)

-统一的计算框架

--统一的计算框架(主讲人:强琦)

-业界经典系统技术分析-spark&flink

--业界经典系统技术分析-spark&flink(主讲人:强琦)

-QUIZ--作业

第九讲 大规模数据的分布式机器学习平台

-主讲人:褚葳

--大规模数据的分布式机器学习平台(主讲人:褚葳)

-QUIZ--作业

实践3:实现MapReduce编程运行时库

-分布式环境下的新问题

--分布式环境下的新问题(主讲人:徐冬)

-工程实现范例

--工程实现范例(主讲人:徐冬)

-课程设计相关问题

--课程设计相关问题(主讲人:徐冬)

内存计算(主讲人:强琦)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。