数据引擎-阿里的ODPS大规模计算引擎

ODPS开放数据处理服务是阿里的大规模分布式数据处理服务,注意这个是目前不开源的产品。算法


产品定位数据库

RDS(Relational Database Service)是云平台的商业关系型数据库,适合小规模的常规OLTP应用,主要是迁移MySQL,SQL Server等传统数据库,重点是SQL兼容性。编程

OTS(Open Table Service)开放结构化存储是对大量结构化和半结构化数据存储和时实查询服务。主要是大规模、低延迟和强一致的结构化数据。网络

ODPS(Open Data Processing Service)开放数据处理服务是对海量且实时要求不高的OLAP应用。主要是构建数据仓库,数据挖掘和商业智能应用。分布式


基本结构函数


用户能够经过在云端等UI界面提交SQL或者MR等任务,也能够用命令行工具ODPS Client进行操做,底层都是经过ODPS SDK和ODPS REST API服务通讯。数据通道则是经过命令行工具dship等,底层是经过ODPS Tunnel SDK和ODPS Protocal buffer API服务通讯。 支持的计算包括:SQL基于SQL92支持Python和Java的自定义函数UDF等,MR,DAG编程模型,Graph编程模型用于大数据量的图计算,举个栗子:PageRank;XLib提供SVD分解,逻辑回归、随机深林等分布式算法,用于机器学和数据挖掘。工具


伏羲系统大数据

伏羲计算平台负责任务调度和资源管理,每一个Service启动先运行一个ServiceMaster,负责向FuxiMaster申请资源和调度ServiceWorker到资源机器,伏羲支持DAG模型的任务调度。这个也就是最近阿里云在sortbenchmark得到冠军的核心,主要设计是Network Shuffer的过程:在Shuffle阶段,Map在肯定了Partition后,不进行Buffer内排序,而是直接经过网络发给对应的Reduce端,这样Reduce接收的数据是无序的,就要先Buffer内排序也会Dump到本地文件中,最后进行一次归并Merge生成一个大有序文件提供Reduce读入,这样的设计大大减少了数据落盘的IO。阿里云


盘古系统spa

盘古是分布式文件系统,主要是保障极高可用性。数据采用3副本存储方式;元数据采用多Master(1主2备)的机制,Master元数据也采用内存存储,经过快照和日志保证断电恢复。元数据的一致性经过Paxos算法来保证。