当前课程知识点:大数据平台核心技术 >  第一讲 大数据和ODPS >  主讲人:程永 >  大数据平台ODPS(主讲人:程永)

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

大数据平台ODPS(主讲人:程永)在线视频

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

下一节:大纲(主讲人:姚文辉)

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

大数据平台ODPS(主讲人:程永)课程教案、知识点、字幕

大家好

我是来自于阿里云

数据事业部的永初

接下来由我给大家介绍ODPS

在过去的双十一

ODPS非常成功地支持了

双十一的海量交易

实现了每秒8万笔新订单的

这种创建

实现了每小时

17个PB的数据量的一个处理

而业内最大的信用卡组织

在实验室的环境里面

也仅仅实现了

每笔2万笔订单的一个处理

那我们在双十一的过程中

实际的下单

就是付款这个环节

实现了每秒6万笔的一个处理量

那在今年

我们的目标是希望能够实现

10万笔每秒的一个处理

一个负载

那我们来看一下

我们的第二个案例

就是ODPS支持蚂蚁金服

进行业务的创新

在过去的几年里面

ODPS成功地支持了蚂蚁金服

实现了对30万客户的一个

贷款的一个发放

而且通过的这种

自动信用风险模型

实现了自动化的审批

在1秒钟之内

可以完全实现审批的流程

不需要人工的进行干预

截至到今年的1月份

整个的坏账率不到1%

那我们的第三个案例

可以看一下 就是天虹基金

现在天虹基金管理的

超过5千亿的一个规模

那现在通过新的ODPS

这个方案以后

可以实现每秒钟

11000笔以上的一个处理

那在之前的时候

没有采用我们的ODPS的时候呢

仅仅是可以实现

基于传统架构仅仅实现

每秒不到1000笔的这个处理能力

那清算

基于ODPS可以

在30分钟之内可以处理完以前

需要8小时的一个处理工作量

实现了16倍的一个提升

而且现在是

这是 整个来讲的话

就是说现在ODPS的一个现状

那五年前是完全另一个样子

在五年前

整个集团的体系结构

是采用了IOE架构加Greenplum

和Hadoop一些相关的系统

随着业务的快速发展

现有的系统架构

越来越难以满足整个系统的要求

特别是表现在软硬件的成本

以及可扩展性上

另外

当时各个业务部门的数据

是散落在多个集群当中的

彼此之间数据并不通

数据共享非常非常困难

由于数据不集中

导致数据经常被拖来拖去

重复的存储和计算

经常发生

光淘宝商品类的目录表

当时就有70多张

由此我们展开了

多年的这种去IOE的一个进程

接下来让我们看一下

阿里大数据平台的发展历史

2009年9月

阿里云率先成立

愿景就是说

想做一个分享数据的第一平台

到了2010年的10月份

第一个自主研发的飞天平台

集群开始稳定运行了

到了2012年的7月

我们开始着手建立

统一的数据平台

从而实现数据的统一的存储

数据标准的统一

以及数据安全的统一管理

到了2013年的8月份

单集群规模

超过5000台服务器的飞天集群

开始正式运营

到了2014年

阿里的大数据平台技术

日益开始成熟

不但可以支撑

双十一的海量的交易

同时也可以往外输出

到了2015年

可以看到在各行各业

都已经率先取得了突破

比如说像公安 海关

像石化 像数据中国

等等各个业务线

那接下来让我们来看一下

阿里的大数据平台的体系结构

在整个体系结构里面

大家可以看到

最核心的是中间的云计算

在云计算之外

是我们的核心计算引擎

就是ODPS

和我们的实时计算引擎ADS

以及我们的流计算引擎OSPS

然后在此之外

就是我们的数据引擎

就是在这个数据引擎里面

我们提供各种各样的工具

而且我们还鼓励

我们的生态合作伙伴

在这个层面

提供各种各样的工具

在工具的层面以外

是一些智能一些应用

在这个里面

可以是面向各个行业的一些

Repeatable Solution

或者是一些Application

通常会有ISV来完成

以上我们讲解了

阿里的大数据的体系结构

接下来我们来看一下

飞天的体系结构

飞天的底层是由Linux服务器

组成这种大规模的集群

在此基础之上 大家可以看到

它是由几个最基本的服务组成的

从左往右看可以看到是说

远程过程调用 安全的管理

非物质协同服务和资源管理

其中远程过程调用

主要是用来

支持点对点之间的通信和校验

而安全管理

主要是用来支持

在多租户的情况下

保障用户和应用的安全

安全一般分成两个部分

一个是认证 一个是授权

认证是基于kerberos

我们的授权是基于capability

在第三个服务

像分布式协同服务

主要是用来提供分布式锁

page管理

以及分布式状态同步

等一些基本的服务

资源管理主要是用来实现对CPU

和内存的这种资源管理

管理每台机器上运行的任务

生命周期

并控制这些资源的使用

在这些服务之上

大家可以看到

有两个基本的组件

分布式文件系统和任务调度

我们的分布式文件系统

提供了类似这种

POSIX API的这种接口

你可以想象它有一个

统一的这种地址空间

命名空间

一个树状的结构

它这里面大概有上亿的数据文件

我们分布式的文件系统

支持权限的控制

目录级别的额度控制等等

对于任务调度

为了充分利用集群的资源

用户必须用一种新的模式

进行编程

让飞天知道

如何把这些应用

分解成许多并行的实例

并且在发生故障的时候

能够自动地恢复

大家可以看到

在这个体系结构图上

左右两边还有两个模块

左边是集群的部署

右边是集群的监控

集群的部署组件

主要是用来控制应用

和飞天在集群上的部署工作

因为我们要同时支持一些

离线的应用和在线的应用

在线应用一个很大的需求是说

在线的扩容

也就是说

如果你加一百台机器

你是不需要停集群

或者是停服务的

还有一件事情就是在线升级

此时在线升级是不能停的

你需要把新版本的服务

和老版本的服务

通过轮转升级的方式

升级到新版本中去

右边的集群监控组件

主要是用来提供集群运行状况

和性能的监控

它提供

监控系统运行状态的仪表盘

还能够支持用户自定义的监控

和报警

提供离线或者在线的故障诊断

和性能分析

在这样的组件之上

大家可以看到

就是飞天平台

对外发布的一系列云服务

比如说像弹性的计算服务 ECS

开放的存储服务 OSS

云数据库服务 RDS

开放结构化数据服务 OTS

以及今天课程讲的重点

开放数据处理服务 ODPS

其中ECS是一种

简单高效的处理能力

可弹性伸缩的云计算服务

可以帮助用户快速地构建这种

稳定安全的应用

OSS主要是用来存储

非结构化的数据

比如说像音频 视频 图片

等等

RDS主要是用来构建在

SSD盘上

它可以兼容MySQL,SQLSERVER

PostGreSQL协议的关型数据库服务

当然如果你想使用

分布式的这种服务

还有一种是DRDS

这个完全是一个

分布式的一个服务

就是RDS的分布式的服务版

我们的分布式文件系统

也被称为盘古

盘古的架构

和Google的GFS很类似

同样是采用master/slave

这种主层架构

master主要负责原数据管理

slave也被称作ChunkServer

主要是负责读写的请求

master是基于Paxos的多Master架构

当一个master死了以后

另外一个master

可以很快地接管过去

基本上能够做到故障恢复

就控制在1分钟以内的时间

文件是按照分片的方式

进行存放的

每个会有三个副本

会被放置在不同的机架上

最后我们还提供

端对端的数据校验

在整个规模来讲

文件是无限制的

单集群可以大于5K

接下来我们看一下

我们的资源管理和任务调度

我们称之为伏羲

伏羲其实比业内现在用的

Hadoop2.0里面的Yarn要早两年

我们在整个伏羲体系结构里面

大家可以看到

我们做了很多的增强

包括像稳定性的增强

多租户的增强

规模的增强 等等

在稳定性方面

大家可以看到

我们伏羲的master实现了HA

另外像APP的master

我们也做了Failover的这种增强

对资源的管理

我们是可以提供多方面的调度

比如说像我们可以实现对CPU

对内存等等控制

另外我们还提供

像配额组的管理可以实现

对资源的弹性的一个控制

通过最大最小值

可以控制这个配额组的资源

另外我们还提供像进程沙箱

离线在线的混布的模式

在规模方面

我们现在提供

一万台以上的这种规模

我们接下来看

伏羲的作业编程模型DAG

一个作业可以看成一个

有向无环图

里面每一个结点都是一个task

然后每个task

都可以按照数据分片

在并行地进行

task是有边的

这个边就是数据流

然后每个task有多路的输入

和多路的输出

这两个task之间的边

表示cross shuffle

大家可以看到在下方的图上

Mapreduce模型

是这个模型的一个特例

只有一个输入 一个输出

并且只有两个task

一个Map和一个Reduce

我们接下来看下一页

就是开发式数据处理服务ODPS

ODPS是基于飞天开放平台

实现的一套

用于海量数据存储和计算的服务

ODPS是国内的唯一的一个

大数据平台

经过了海量数据的

检验的一个平台

在阿里巴巴内部

ODPS经历了像广告 搜索

BI 像淘宝 天猫 聚划算

以及像数据市场

还有阿里小贷 余额宝

等多个产品的这种

海量数据的一个实际的检验

在规模上来看

ODPS单一集群现在可以达到

一万台以上的一个规模

而且还可以同时保证

80%的线性扩展能力

如果是说

不需要这么高的线性扩展能力

整个集群的部署能力

完全是可以一百万台以上

一直到无限

整个来讲的话

ODPS是支持同城 异地

等多种的数据中心部署模式

另外在用户数上

整个集群是支持

一万个用户以上的

另外像项目的应用

也是可以支持一千个以上

像部门多租户

也可以支持一百个以上

当然这个数字都是

可以再往上涨的

也就是说我们为了考虑性能

其实是推荐不要太多的一个设置

另外像作业

整个集群可以支持

一百万以上的作业

然后并发的作业

可以支持两万以上

我们接下来看一下

ODPS的体系结构

大家在图上可以看到

ODPS是构建在飞天系统之上的

在飞天系统之上

又分成了逻辑层和接入层

那在逻辑层可以看到有几个组件

像scheduler像Worker和Executor

在右边就是分布式的这种

原数据的服务

可以看到整个体系结构

和开源的Hadoop的架构

非常非常类似

再往上走可以看到是接入层

再接入层左边

我们称之为叫Tunnel

可以实现整个数据的上传和下载

在右边我们提供HTTP的服务

或者是提供restAPI

那这种可以提供

可以让数据应用连下来进行访问

整个ODPS可以基于

Service mode的方式进行执行

而且支持这种shuffle的不落盘的模式

可以极大的加速这种执行的效率

ODPS是支持完善的这种

多租户的机制

通过存储和计算配额的方法

可以让多个用户

分享一个集群的资源

所有的计算任务

在ODPS里面

都是运行在安全的沙箱里的

通过进程 应用

和系统的沙箱

配合运行时的这种签权的方法

可以保证整个数据的安全

在安全方面

ODPS还提供非常多的

一些授权的管理手段

比如说像ACL

决策的授权

Policy的授权

跨Project的授权

以及这种内部的机制

可以提供精确到列到列的这种

级别的安全的方案

满足一个组织

或者是跨组织的之间的这种

授权访问的需求

那对于安全比较高的项目

可以提供项目保护机制

防止数据的泄漏

另外在系统级别

Project级别和表级别

提供这种RP访问的白名单机制

就是可以防止

非名单以外的这种访问

那在调度方面

ODPS是可以提供像

Fair Scheduler

像先进先出的Scheduler

抢占 组内优先

以及这种最大最小值的这种

Quota的设置都是支持的

那在对多租户的资源的控制方面

我们提供全方位的支持

比如说像CPU

可以通过抢占的模式

可以基于Linux container的方式去实现

同样对于Memory

对于Network

还有对Network的QoS

以及对磁盘

都是提供这种

全方位的资源的一个控制

接下来我们看一下

ODPS的核心抽象

在ODPS中

主要通过Project进行管理

Project类似于DataBase或Schema

是用来用户隔离

和访问控制的主要边界

在Project中

主要包含Table Partition

是用来存储结构化数据的

Volume

主要是用来存储非结构化数据的

另外还有像UDF Resource

Job Instance Tunnel Event等等

其中Tunnel主要是用来

上传下载数据用的

在此之外还有用来控制

用户对Project内

实体访问的这种安全机制

主要是通过User

和Role来实现的

接下来我们看一下

ODPS的数据存储模式

在ODPS中

数据有三份拷贝

从而在存储上

保证了数据的可靠性

我们前面讲过ODPS集群

可以跨机房进行部署

从而突破了机房的

物理容量的限制

支持同城或者异地多种模式

大家要留意一下

如果我们采用这种同城或者异地

部署这种单一集群模式的时候

如果是跑批量的这种情况下还好

对时延考虑比较低的情况下

还是可以

如果是对时效性要求比较高

那么建议是把其中一些

关键的一些数据进行复制

那这样的话

两边都有这个数据以后

整个计算的性能会加快

在ODPS中

是采用了行列存储的模式

支持Gzip、Bzip2、Snappy、LZ4等

多种的压缩格式

那ODPS

通过对存储和计算的压缩

只有当计算过程中

要用到的时候

这些数据才会被解压缩

从而极大地提高了整个效率

这是整个ODPS的海量数据存储

那接下来我们看一下

ODPS的计算工具和编程模型

在ODPS当中

提供多种计算工具和编程模型

比如像SQL

准实时SQL 流计算 MapReduce

图计算 算法平台等等

其中像准实时SQL

是提供这种计算过程的数据

不落磁盘这种模式

从而加快了整个性能

像图计算

接下来我们也会去详细介绍

就是图计算这一块的话

其实我们可以提供

非常大的容量的一个处理

海量数据的这个处理

并通过分布式的方式

可以实现这种线性的扩展

在ODPS里面

通过这种多种的工具

可以全方位地满足

用户从实施到离线

从数据仓库建设

到数据挖掘等多种场景的需求

用户完全没有必要

采用多种工具拼凑的方式

去形成一个解决方案

ODPS SQL的执行

基于飞天的有向无环图执行模式

比MapReduce的执行方式

要效率更高

ODPS SQL采用C++进行编写

语法兼容Hive

是采用代码生成的实现方式

比impala早了近两年

基于飞天的有向无环图编程模式

比MapReduce省了IO

比Tez技术早了近四年的时间

整个ODPS SQL在阿里巴巴内部

已经生产

稳定使用了四年多的时间

经过了大规模的生产检验

可以保证用户在ODPS SQL上

高效稳定地运行

接下来我们看一下

ODPS的图计算

ODPS Graph是一套面向

迭代的图计算处理框架

图计算作业使用图进行建模

图是由点和边组成的

点和边包含权值

通过迭代对图进行编辑 演化

最终求解出结果

典型应用你像PageRank

K-匀值聚类算法等等

用户可以ODPS Graph提供的接口

Java SDK编写图计算程序

ODPS Graph处理的图

必须是一个有点和边

组成的有向图

由于ODPS

仅提供二维表的存储结构

因此需要用户自行将图数据

分解成二维表格式

存储在ODPS当中

在进行图计算分析的时候

使用自定义的GraphLoader

将二维表数据转化成

ODPS 00:19:21:16引擎中的点和边

至于如何将图数据

分解成二维表格式

用户可以根据各自的业务场景

做决定
ODPS Graph可以支持

一百亿的顶点

一千五百亿的边的规模

支持节点的失败自动恢复机制

接下来我们看一下

ODPS提供的算法平台

ODPS提供丰富的

机器学习算法库

比Hadoop体系当中的Mahout

速度更快

数量级的性能提升

主要原因是采用C++高效实现

基于MPI编程框架

大量使用内存和网络

进行算法加速

并且算法实现和规模

经过了阿里巴巴内部

大规模的生产检验

ODPS算法平台

在阿里巴巴内部的实际环境中

支持一百亿的Feature

和五百亿的Sample

以上我们介绍了

ODPS的体系结构

以及各个组件

大家如果想有什么疑问

可以跟我们留言

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

第一讲 大数据和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编程运行时库

-分布式环境下的新问题

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

-工程实现范例

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

-课程设计相关问题

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

大数据平台ODPS(主讲人:程永)笔记与讨论

也许你还感兴趣的课程:

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