ODPS技术架构及应用实践技术架构及应用实践
ODPS是分布式的海量数据处理平台,提供了丰富的数据处理功能和灵活的编程框架。本文从ODPS面临的挑战、技术架构、
Hadoop迁移到ODPS、应用实践注意点等方面带领我们初步了解了ODPS的现状与前景。
初识ODPS
ODPS是分布式的海量数据处理平台,提供了丰富的数据处理功能和灵活的编程框架,主要的功能组件有如下几个。
1.Tunnel服务:数据进出ODPS的唯一通道,提供高并发、高吞吐量的数据上传和下载服务。
2.SQL:基于SQL92并进行了本地化扩展,可用于构建大规模数据仓库和企业BI系统,是应用最为广泛的一类服务。
3.DAG编程模型:类似Hadoop MapReduce,相对SQL更加灵活,但需要一定的开发工作量,适用于特定的业务场景或者自
主开发新算法等。
4.Graph编程模型:用于大数据量的图计算功能开发,如计算PageRank。
5.XLIB:提供诸如SVD分解、逻辑回归、随机森林等分布式算法,可用于机器学习、数据挖掘等场景。
6.安全:管控ODPS中的所有数据对象,所有的访问都必须经过鉴权,提供了ACL、Policy等灵活强大的管理方式。
ODPS采用抽象的作业处理框架将不同场景的各种计算任务统一在同一个平台之上,共享安全、存储、数据管理和资源调度,
为来自不同用户需求的各种数据处理任务提供统一的编程接口和界面。
和阿里云的其他云计算服务一样,ODPS也是采用HTTP RESTful服务,并提供Java SDK、命令行工具(Command Line
Tool,CLT)和上传下载工具dship,以及阿里云官网提供统一的管理控制台界面。在阿里内部,有多个团队基于ODPS构建交
互界面的Web集成开 发环境,提供数据采集、加工、处理分析、运营和维护的一条龙服务。基于ODPS进行应用开发,最直
接的是使用CLT以及dship等工具。如果不能满足需 要,也可以进一步考虑使用ODPS SDK或RESTful API等进行定制开发,
如图1所示。
图1 ODPS应用开发模式
如果你的业务发展需要一个足够强大、能开箱即用的大数据处理平台,并且不想花费太多精力去关注这一切如何实现与运维,
那么ODPS是一个非常理想的选择。
规模的挑战
在DT时代,数据是宝贵的生产资料,但不断扩大的数据规模给ODPS带来了极大的挑战。在阿里内部就曾直面这种情况:在
可以预见的时间内,单个集群的规模无法再容纳所有的数据。
解 决方案是扩大单集群的规模,同时让应用系统可以管理多个集群。在这个背景下,ODPS作为一个海量数据的处理平台,
结合5K项目开发了多集群管理的功能, 使得数据处理的规模跨上了一个新的台阶。当单个计算集群的存储或计算容量不足
时,将数据重新分布到新的集群上。更重要的一点是,这种跨多个集群的能力,对 上层应用是透明的,用户在运行SQL或者
Graph模型时,不必了解数据是分布在哪个物理集群上,如图2所示。