当前位置:文档之家› 杨少华:阿里开放数据处理服务

杨少华:阿里开放数据处理服务


逻辑层
存储与 计算层
飞天集群 A 飞天集群 A (机房1) (机房1)
飞天集群 B (机房2)
16
跨集群(机房)数据共享(2)
• 按业务划分集群
– 关系密切业务的project放在同一个集群 – 每个project对应一个默认集群,作业总是跑在默认集群上
• 数据版本
– 同一份数据(表或分区)在多个集群上可能具有不同的版本
• • • • 方便应用集成,支持非linux平台 方便安全隔离,易于对公网开放 作业日志在后端,便于查错 客户端轻量,升级方便
10
逻辑层
• 负责实现RESTful APIs语义 • 用户请求分两类
• DDL请求,如创建表/删除表,在逻辑层响应完成 • DML请求,如SQL查询和MR作业,需提交计算作业到存储与计算层
18
高效SQL引擎
• 作业概况:
– DDL:几十万/天,DML:几万/天

特性



兼容大部分Hive语法 支持Python和Java写UDF,UDAF,UDTF 物理执行方式:DAG,C++实现 Code gen 准实时实现(Service-Mode)
19
高效SQL引擎(2)-DAG
• 示例
– –
社交网络(来往,微博),物流信息(菜鸟物流) 电商关系:类目/商品/买家/卖家,交易/浏览

ODPS图计算框架
– 支持类似Pregel的Java编程接口,面向迭代类型的作业 – 磁盘IO→内存网络,换来更快的性能

典型应用:
– – – – PageRank K-均值聚类 非负矩阵分解NMF …
• 典型数据业务
– 信用贷款/广告DMP
3
高可用
ODPS
云计算 服务
服务概况
• 集群
– –
• 业务
– 数百数据开发工程师
多个集群 单集群规模
– – – – 机器:5000台 CPU:10万核 内存:500TB 磁盘容量:100PB
– 阿里系各事业部 – 开始为部分第三方ISV和 科研机构开放数据存储和 分析能力
• 负载
– 亿级别文件 – 作业量:5万/天 – 作业I/O:PB级别/天
5
提纲
• 背景与概况
• 服务架构
• • • 接入层 逻辑层 存储与计算层
• 关键技术 • ST http://xxx/projects/projectname/jobs <xml>insert overwrite table d select * from s;</xml>
Xlib-矩阵运算与数据挖掘算法库
• 金融建模/广告等场景有强烈的分布式算法需求 • ODPS分布式算法库

基于MPI,C++实现 集团共建算法社区模式,集成常用基础性算法

当前支持算法
– – – – SVD分解 逻辑回归 随机森林 …

集成Graphlib算法库
22
图计算框架
• 海量图结构数据
服务 A (控制集群A)
服务B (控制集群B) 分布式
meta服务
逻辑层
Worker 1

Worker m
Scheduler
Executor 1 … Executor n
存储与
计算层 飞天集群 A 飞天集群 B
·· ·
逻辑层-分析
• Worker/Executor
• 线性可扩展,负载均衡
• Schduler
SELECT … FROM a JOIN b ON a.id=b.id GROUP BY a.c;

Hive
hdfs
Job 1
M1 R1 hdfs M2
Job 2
R2 hdfs

ODPS SQL
M1 pangu M2 R1 R2 pangu

减少磁盘IO,SQL嵌套多层时性能改进更明显
20
SQL(3)-准实时
阿里巴巴-开放数据处理服务
(Open Data Processing Service, ODPS)
数据平台事业部 – 杨少华
提纲
• 背景与概况
• • • • 服务架构 关键技术 服务管理 结语
2
背景
• 海量数据处理和分享需求
– PB级电商交易数据 – 阿里系各事业部、合作伙伴的数据交换和融合 – 第三方公司的数据处理需求
17
跨集群(机房)数据共享(3)
• 实施
• 业务project数据依赖做大量的分析统计,与业务方协 商集群划分方案 • 历史数据迁移,观察跨机房数据流量 • 开始逐步切换project的默认集群到新集群
• 效果
• 拥有万级别的大规模集群,后期扩容不受限制 • 对用户透明,跨机房流量可控 • 业务方反映这是最轻松的一次业务迁移
• 实现架构
• • • • Worker Scheduler Executor Meta服务
DDL or DML
Worker 1
DML
… Scheduler …
飞天作业
分布式 meta服务
Executor 1
飞天集群
1
逻辑层-双服务架构
接入层 接入层
RESTful协议 Project 1 Project 2
23

算法往往跟业务相关
提纲
• • • 背景与概况 服务架构 关键技术
• 服务管理 • 结语
24
服务管理
• • • • • • 多租户共享集群 基于ACL和Policy的认证授权机制 基于project的业务划分 基于配额的管理 基于历史的优化 多种类型计算作业共享集群
25
总结
• 阿里巴巴数据处理服务(ODPS)
8
接入层-架构
日志工具 在云端(Web IDE) 天网
·· ·
客户端
SDK
Console
RESTful APIs
接入层
数据上传/下载服务
Project 1
HTTP服务
Project 2
用户 中心
逻辑层
ODPS 服务 A
ODPS 服务 B
分布式 meta服务
存储与计算层
接入层-分析
• RESTful风格的接入层带来诸多好处
{"LatestVersion":V1,"Status":{"ClusterA":"V1","ClusterB":"V0"}}
– 当一份数据版本更新后,触发一个跨集群数据复制任务
• 跨集群数据复制
– 表或分区可以配置是否进行跨集群复制(自动或手工) – 流控,优先级
• 直读直写,应对新的跨集群数据依赖,少量任务
– – – – – – – 支持海量数据的离线存储和计算 以RESTful API的方式提供服务 基于飞天分布式平台 支持跨集群(机房)数据共享 支持SQL、MapReduce、MPI、图计算编程框架 支持常用的矩阵运算和数据挖掘算法 支持多租户和基于ACL/Policy的权限控制
我们面对一座数据金矿,就看怎么能挖出更多的 金子,期待有志之士加入阿里数据平台
14
提纲
• • 背景与概况 服务架构
• 关键技术
• 跨集群(机房)数据共享 • 高效SQL引擎 • 矩阵运算和数据挖掘算法库 • 图计算框架 • 服务管理 • 结语
15
跨集群(机房)数据共享(1)
• 为什么要做
• 业务快速增长,单集群扩容受机房容量、飞天规模限制
• 难点
• • • •
—— 按业务project进行划分 数据存储和计算如何划分 —— 引入数据版本 数据动态变化,需要保证数据读取正确性 跨机房带宽如何使用 —— 跨集群数据复制任务,流控 对用户透明 —— 数据存储本来就对用户透明 ODPS 服务(控制集群) Worker/Scheduler/Executor ODPS 服务 分布式 meta服务
• 资源实体
Project 类似DataBase/Schema,用户隔离和访问控制的主要边界 • Table/Partition,数据集合 • UDF/Resource,文件,jar包,py脚本 • Job/Instance,抽象可执行实体和运行实例 User/Role,用于管理用户对Project内实体的访问控制和授权
• 只维护一组运行实例,无状态(状态总是持久化) • 双ODPS服务 • 灰度发布,不停服务轮转升级,failover
• 分布式meta服务
• 使用阿里云OTS分布式存储系统,无需担心空间不够 • 统一名称空间,双服务和多飞天集群对用户透明
13
存储与计算层
• 多个飞天集群组成 • 支持跨集群(机房)数据共享 • 存储
LVS 接入层
RESTful协议
负载均衡
协议处理、用户认证
用户空间管理,Query语法语 义分析以及执行计划生成, 数据对象访问控制 分布式存储和计算
7
逻辑层
存储与计算层
接入层
• 访问ODPS服务的唯一入口,提供SDK和Console • 功能设计
用户认证 RESTful APIs,基于HTTP协议,支持对资源实体的CRUD操作
• Service-Mode
• 常驻服务,预先申请好worker - 减少调度开销 • Shuffle数据不落地,直接写网络 • 假设作业规模m*r,要求r个reduce先起,接收map写的 数据 • 内存文件 • LLVM,减少编译时间


根据SQL类型和数据量动态决定是否采用ServiceMode方式 未考虑Failover,主要用于开发project和Adhoc数 据分析
相关主题