9 月 26 日,阿里云飞天大数据平台在云栖大会第二天主论坛上正式对外发布,这也是阿里首次对外披露飞天大数据平台的整体架构。据介绍,飞天大数据平台由阿里自主研发,可扩展至 10 万台计算集群,是目前全球集群规模最大的计算平台。
飞天大数据平台始于 2009 年阿里巴巴的“登月”计划,在此次对外发布之前,它已经在阿里云内部实际运行和服务了十年之久(大家过去更为熟悉的 MaxCompute 是飞天系统的三大件之一,也是如今飞天大数据平台的核心)。如今飞天大数据平台在阿里巴巴经济体中支撑 99%的数据存储和 99%的计算力,单日数据处理量超过 600PB,也是阿里 AI 技术最重要的基础设施之一。飞天大数据平台如何演变至今?背后有哪些值得关注的技术能力?在人工智能的浪潮中,大数据除了提供支持,还能如何借力?在本次云栖大会上,InfoQ 有幸采访到了飞天大数据平台的几位核心技术专家,本文将从飞天大数据平台的演进历程、核心技术特性及未来发展方向等方面揭开飞天大数据平台的神秘面纱。
飞天大数据平台的前世今生
2009 年,阿里启动“云梯”计划,当时有两条技术路线同步进行,分别是开源的 Hadoop 和自研的 ODPS(也就是今天的 MaxCompute)。当时阿里已经下定决心要开始去 IOE 并构建自己的大数据平台,但还没有决定好是走开源路线还是自研路线,因此就有了云梯 1(Hadoop)和云梯 2(ODPS)的并行。2013 年,两个平台先后突破单集群 5000 台服务器,这意味着自研 ODPS 达到了大数据集群水平扩展的一个里程碑,最终集团从深度技术把控力和极致性能优化的角度,决定采用云梯 2、彻底走上自研路线,同年,代表着阿里人攀登技术巅峰理想的“登月”项目正式启动。
在“登月”项目进行过程中,自研数据综合治理平台 DataWorks(原来叫作 BASE)也同步开始构建。到了 2015 年,“登月”项目完成,ODPS+BASE 开始在阿里云上对外提供服务,这也标记着阿里第一套数据中台体系构建完成。同年,ODPS 打破了计算界奥运会 SortBenchmark 的 4 项世界纪录,100TB 数据排序仅耗时不到 7 分钟。
2016 年,阿里集团内部开始涌现出一批新的计算引擎,包括支持开源大数据的 EMR(E-MapReduce)、实时计算 Stream Compute、机器学习 PAI 等。随着企业数据场景变得越来越复杂,数据类型和存储类型越来越多样化,单一引擎或单一存储已经很难满足客户需求。这也给大数据平台带来了新的挑战,对于不同的数据类型、存储类型、计算引擎,如何方便地进行数据统一管理和开发?阿里巴巴认为当前最佳实现方式是跨引擎统一编程平台+跨数据源综合治理,而这推动了阿里大数据平台向飞天大数据平台的演进。
十年后全新出发的飞天大数据平台,是一个能够将离线计算、实时计算、机器学习、搜索、图计算等引擎协同起来对云上客户提供服务、且有 AI 加持的全域数据平台。下图是当前飞天大数据平台的完整架构。
飞天大数据平台与传统大数据平台有哪些不同?
简单总结起来,首先,解决客户复杂数据场景更加灵活;其次,大数据计算能力更强、成本更低了。
独创秘籍,企业数据综合治理
数据是企业的生产力,创新的企业在快速发展过程中,会选择更加灵活、适配自身业务的数据存储与计算,当企业的业务已经铺遍全国,一定会存在存储跟着数据走、数据跟着业务走的局面(即数据分布在各个区域的数据平台上),传统的大数据解决方案,是帮助企业汇聚统一的大数据平台,所有数据存储在一起,计算在一起,而飞天大数据平台可以提供更多的选择,通过数据综合治理的新功能,企业可以将不同存储、不同计算引擎的数据在同一个平台进行分析,不仅如此,飞天大数据平台提供的统一元数据中心,让企业同一个地方做数据资产管理、数据分析、数据质量管理与监控、数据安全与数据分享等,这些能力能够让创新的企业,快速使用上国际一流的大数据平台,让开发者更注重在业务数据开发商。这些能力就是飞天大数据平台中 DataWorks 主要做的工作
阿里云智能计算平台事业部资深技术专家升龙表示,DataWorks 之于飞天大数据平台,就如同 Windows 操作系统之于 CPU,它能够无缝地跟底层的多种计算和存储引擎对接。用户可以通过两种方式完成开发工作,一种是传统的写代码,包括 SQL、UDF、Java 代码均支持;另一种是通过可视化控件拖拽的方式,更简单地完成开发。这是一直以来 MaxCompute 和 DataWorks 主打的能力,但这次伴随着飞天大数据平台的发布,它对于存储在不同平台的数据的全局管理、探查和实时查询分析能力又有了进一步升级。升龙表示,无论用户的数据原来使用的是什么引擎(开源引擎或数据库),都在飞天大数据平台支持的范围之内。在所有的引擎之上,DataWorks 还提供 AI 模型训练的能力,原生支持阿里巴巴机器学习平台PAI,用户可以一站式完成大数据处理与机器学习模型训练及预测。
通过飞天大数据平台的跨云、跨引擎、跨存储、跨 Region 四项能力,再加上 DataWorks 的综合治理能力,阿里云得以对外提供一个完整的大数据体系,把所有用户在不同角度、不同需求的数据统一在一个平台上管理起来。过去工程师需要自行组合无数产品来做的事情,现在通过一体化的飞天大数据平台可以快速完成。
那么目前综合数据治理平台 DataWorks 在市场上是否有对标的竞品呢?升龙表示,目前市场中也提供了全套综合数据治理产品,但问题在于它是通过提供一系列产品组合起来实现综合数据治理,包括单独的 WebIDE 产品、单独的交互式查询产品等,使用时需要用户自己像搭积木一样把需要的产品一一组合起来;而在飞天大数据平台上,用户只需要勾选所需的“积木”,就可以搞定整套流程,这项能力在国内也是独一无二的。
限于篇幅,本文无法对飞天大数据平台的所有核心技术能力进行逐一解读,感兴趣的读者可以通过下图窥知一二。
计算力与成本的极致优化
在阿里云智能事业群研究员、MaxCompute 掌门人关涛看来,高性能+低成本是飞天大数据平台的第一项核心优势。在数据爆炸式增长的今天,打破数据量与成本的线性关系对用户至关重要。在与阿里云用户接触的过程中,关涛发现,刚开始使用大数据时客户的需求是快速上手、灵活性,但一旦真正把大数据用起来,客户会非常关注成本。以阿里自身为例,集团内部的计算集群规模已经达到了十万台,哪怕是 1%的系统性能优化,涉及的就是一千台服务器和数千万的花费。同时,对于大部分公司来说,用户量、数据量每年的增长可能会翻番,与此相应的成本投资却不可能每年也跟着翻倍。随着大数据进入大规模使用的普惠时代,数据量和计算量增长越来越快,性能和成本就显得愈发关键。
过去十年,飞天大数据平台不断打破大数据计算的各项记录:2013 年,突破单集群 5000 台服务器同时计算的局限,如今单集群规模已超过 1 万台;2015 年,打破计算界奥运会 SortBenchmark 的 4 项世界纪录,100TB 数据排序仅耗时不到 7 分钟,刷新了当时 ApacheSpark 23.4 分钟的纪录;2017 年,成为全球首个通过 100TB 规模 TPC-BB 测试的大数据平台。
就在今年 9 月,飞天数据平台又刷新了两项记录,在 30TB 规模 TPCx-BB 测试中,MaxCompute 计算性能达到 6427.86QPM、计算成本仅 169.76 美元/QPM,比原有的记录快一倍的同时成本低一半;在 10TB 规模 TPC-DS 测试中,EMR 也实现了计算能力(526 万 QphDS)和成本(0.08 美元/QphDS)的最优水平。MaxCompute 作为全球首个 TPCx-BB 认证的公共云产品,成为了除 Hive、Spark 以外 TPCx-BB 第三个标准支持的大数据引擎,并首次将数据规模拓展至 100TB,性能达到 25641.21QPM。
支撑 MaxCompute 计算力的核心模块之一是 SQL 引擎,主要包括 3 个模块:编译器、运行时和优化器。MaxCompute 的 SQL 编译器支持标准 SQL,100%支持 TPC-DS、TPCx-BB 语法;运行时支持列式处理和丰富的关系算符,基于 LLVM 做了微架构级别的优化;优化器在 Calcite 的 CBO 的基础上,融合基于历史信息的 HBO,通过多种优化手段提升 MaxCompute SQL 的性能。
存储方面,MaxCompute 使用 Aliorc 存储格式,支持列式存储、灵活的编码格式、异步预读及高效的压缩算法,与开源 ORC 存储格式兼容,在存储效率和读写效率上都有显著的提升。同时,MaxCompute 以外表的形式支持多种数据源,比如 HDFS、OSS 外表,可以将 TPCxBB 生成在 HDFS 中的数据高效的导入到 MaxCompute 中。
调度方面,MaxCompute 采用基于飞天平台的调度系统 Fuxi2.0。其 DAG2.0 将资源调度 overhead 控制在了 10us 级别,远远领先业界同类框架。Shuffle2.0 通过数据重排,在磁盘和网络之间找到平衡点,将集群吞吐效率提升 30%。
从最初的 SortBenchmark,到后来的 TPCH、TPC-DS,再到最近这两年的 TPCx-BigBench,为什么阿里要跟国际标准化组织进行这么多大数据方面的 Benchmark 测试?关涛表示,阿里参加各项 Benchmark 测试的初心是以这些指标作为基准和优化的抓手,不断打磨和优化系统;同时,也通过这些标准测试证明飞天大数据平台的计算能力和成本。最早的 SortBenchmark 中 GraySort 测试特别简单,只看谁在 100TB 规模数据排序上算的最快,至于用了多少硬件、用什么样的方式算都不管。但在阿里看来,算的快并不能代表大数据计算力的全部,因此第二年阿里又参加了 SortBenchmark 中 CloudSort 的测试,这项测试不仅考察谁算的快,还考察谁更便宜。但从测试方式来看,这两项测试都只做字符串的纯排序,也不能代表大数据的所有能力。
出于这些考虑,阿里最后选择了 TPCx-BigBench(TPCBB)。TPCBB 会从多个维度综合考量大数据平台的计算能力,不仅会全面考察结构化、半结构化、非结构化数据的处理能力,还会涵盖大数据和机器学习负载,在大数据分析维度中可能会覆盖面向大规模数据的分析、面向小规模数据的分析,也会考察更复杂的数据处理场景。
为了做到现在的算力水平,飞天大数据平台在技术上经历了三个阶段的演进。
第一个阶段是规模化,这个阶段的核心是能否在给定的计算集群规模下完成这么多的工作量,2013 年的 5K 集群规模就是这一阶段的关键点。当阿里双十一当天真的需要这么多算力的时候,给到足够的硬件,是否能真正把这些硬件的算力释放出来满足需求?这个阶段更强调的是系统的扩展能力,飞天大数据平台在这个阶段构建了单集群和多集群扩展的能力。
第二个阶段是引擎侧优化,2017 年 MaxCompute 2.0 发布前,就将引擎侧从底层到顶层做了整体的重构优化,为了让同一个算子能够算得更快更好,MaxCompute 从存储到计算,整个系统全部重构了,云侧代码基本重写。
第三个阶段即当前飞天大数据平台所处的阶段,纯粹软件层面的优化工作已经做到一定程度了,下一步阿里希望能够结合 AI 做智能优化。
基于 AI 的大数据智能化管理
随着大数据的发展,阿里从几年前就开始面对数据/作业爆发式增长带来的挑战,具体包括三方面:EB 级数据和百万级别作业管理难度太大,数据中台团队已经无法再胜任;多种数据融合在一起,人无法在海量规模上理解数据的所有价值;大数据系统经过多年发展,如果要实现“跃迁”式的进步,需要体系结构层面的改变。
因此,阿里将飞天大数据平台定位为与 AI 双生的系统,它不仅向 AI 提供基础的计算力和数据,也通过 AI 的方式来实现大数据计算和存储的优化。在本次云栖大会上正式亮相的智能云数仓(Auto Cloud Data Warehouse),就使用了大数据和 AI 的方式来反过来管理和优化大数据。
Auto Cloud Data Warehouse 包括以下三层能力:
尝试寻找计算的第一性原理实现效率优化:CBO+HBO、Learned Statistics、智能计算重用、索引推荐与最优化、自动分层存储、存储层的自适应编码与压缩;
实现可量化的资源规划和管理:作业运行模式自动分类、动态 Quota 调整和缩扩容、作业运行预测与自动预报警、作业自动升降级、数据排布与跨集群调度;
智能建模、自动发现数据的内在关联:相似作业与数据的识别、自动纠错、作业运行预测与自动预报警、作业自动升降级。
关涛透露,飞天大数据平台基于 AI 的智能数据分级工作已经为阿里节省了超过一个亿的成本。对于大数据平台来说,区分冷热数据并安排不同的存储方式是非常重要的一项工作,对存储成本和计算性能至关重要。对于需要经常使用的热数据,则需要放到 SDN、加 Cache 或者做各种优化,使用户能够更快地调用,从而提升计算性能;对于不常使用的冷数据,调用频率相对较低,则可以进行冷压缩,将数据压缩到最小再存储起来,以节省存储成本。但到底什么数据是冷数据?这个问题其实并不好回答。
原来数据表不太多的时候,传统做法是用手动规则来划分冷热数据,比如三个月之前的数据都是冷数据,三个月之后的数据都是热数据。但这种方法一方面不够灵活,另一方面对于数据表特别多的场景就不适用了。比如阿里巴巴内部有将近有一千万张表,同时有十万个员工,平均下来每个员工要负责一百张表。很多数据开发工程师手里有上万张表,如果你去问他,哪些表是不经常访问的冷数据,哪些表是经常访问的热数据,工程师也很难说清楚。
飞天大数据平台现在的做法是通过机器学习方式得到一个模型来判断冷热数据,这是阿里内部一套名为 HBO(全称为 History Based Optimization)的技术。对于进程中的数据,系统会查看数据的 Access Pattern,通过对这些数据的历史访问 Pattern 来智能地区分到底是热数据还是冷数据。如果这个数据经常会有各种各样的人来访问,系统就会认为这是热数据,需要推到 Cache 里面去;当系统发现数据的访问频次降低时,就能判断出这是冷数据。当系统通过数据的历史访问 Pattern 选出判断模型后,不仅能够帮助用户对已有数据做冷热数据分级,还能对新进来的数据做智能预测。这项技术已经在阿里巴巴内部使用相当长一段时间了,目前已经可以做到对每个不同的用户、每个不同的数据,都有一个固定的时间点和一个灵活的时间点,用更灵活的方式判断什么样的数据是冷数据/热数据,从而实现个性化的数据优化。
在关涛看来,有了 AI 的加持,未来大数据平台将不再需要人类做 DBA 类似的工作。为什么说 DBA 这个角色在大数据领域走不下去了?关涛认为,随着数据量的增大,数据的关系已经超出人脑能够管理优化的范畴。如果是几百个 SQL,靠人脑还能想清楚怎么建模怎么优化,但如果 SQL 达到了上万个(目前阿里集团每天有近 1000 万作业在运行),靠人脑基本很难做到,因为这已经超出了人的认知范围极限了。从这个角度来说,向智能化方向发展,是大数据系统下一步必须要做的事情。
另外,在此次云栖大会上,飞天大数据平台提出了“逻辑数据湖”的概念。“数据湖”这个概念近期在业界被频繁提及,按照微软最初提出的数据湖定义,指的是把一些未经处理、为 Format 的数据统一放到一个湖里做统一的处理。这其中暗含两个点,第一是数据统一存储,第二是对数据格式不做严格要求。但飞天大数据平台团队认为,这种物理数据湖的架构是错误的,也就是说将所有未经处理的数据放在同一个地方是错误的。在关涛看来,数据湖其实并不是一个物理概念,不是一套物理的数据存储,而应该是一个逻辑概念,物理数据湖这个概念有非常多的局限,包括数据的冗余、延迟等。
关涛告诉我们,首先,数据本身并不产生价值,基于数据之上的计算才产生价值,因此数据应该被存储在跟计算贴的最近的地方。比如数据库的数据是 Transactional Data,这些数据就应该放在数据库里,而不应该搬到数据湖里面,否则就会带来延迟;大数据平台的数据是列存储为主,就应该放在大数据处理平台上;如音视图这种非结构数据,就应该放在 OSS 或 NAS 这种普通的存储介质上即可。在阿里看来,数据放在同一个地方不是最优架构,因此数据不应该存储到统一的所谓一个物理湖里,而应该分散在各个机房。不同的数据应该放在不同的存储中,才能使得数据上层的计算最有效,并将数据延迟降到最低。
但同时这又带来了另一个问题,从用户的角度出发,他们希望有一个统一的视角去看待所有数据,因此飞天大数据平台提出了相应的解法,底层叫做联邦计算,顶层即数据综合治理。这套解法希望能够给用户提供一个统一的逻辑视角,从 DataWorks 平台上看,数据是在一起的,但实际上数据存放在不同的数据平台上,通过底层的联邦计算将计算 Federated 到不同的计算平台上去,使得计算能够融合在一起,这是所谓“逻辑数据湖”的概念。统一的出口在上层,用户可以在开发平台上看到来自不同位置的数据源,并通过统一的方式执行作业的读写,从不同数据存储取数据的时候也可以做到实时读取,不需要再到湖里取。
大数据的未来
大数据的概念在上世纪 90 年代被提出,随 Google 的 3 篇经典论文(GFS、BigTable、MapReduce)奠基,已经发展了将近 20 年。这十来年中,诞生了包括 Google 大数据体系、微软 Cosmos 体系、开源 Hadoop 体系等优秀的系统,这其中也包括阿里云的飞天系统。这些系统一步一步推动业界进入“数字化“和之后的“ AI 化”时代。
从 Gartner Hype Cycle for Emerging Technologies 看,大数据技术在 2011 年进入图谱,2014 年撤出,主要原因就是大数据已经不是一个特定的技术领域,而是开始“普惠”生活的方方面面。大从在国内真正热火起来到现在的十年间,大数据经过了一个从“尝鲜”到“普惠”的过程。关涛认为,尝鲜期用户的关注点和普惠期用户的关注点已经发生了迁移,前者关注的是快、灵活,就好像现在 AI 的很多系统一样;到了普惠期,用户更关注企业级能力和稳定性。
对于这十年间大数据的最大的变化与不变,关涛表示:就不变而言,大数据系统的分布式,如何做扩展性、稳定性、容灾等基本都是不变的,这些都有数十年的理论基础的积累;其次,数据增长和变化的趋势基本与摩尔定律相匹配,这个趋势也没有变化;另外,软硬件协同的趋势不变,过去很多技术的发展都不是只靠软件或硬件的更新驱动的,而是软硬件共同推动技术的演进,软硬件结合一体化其实已经发展多年,并非现在才出现的新名词。
对于大数据未来比较重要的发展方向,关涛提出了三点:
大数据发展进入普惠期,成本变得越来越关键,甚至可能成为最重要的一点。大家现在遇到的困难,都是高速增长的数据和计算量需求,与大数据随之增长的成本之间的矛盾。现在各家企业的竞争焦点,很多时候核心是怎么用更低的成本获取更多的信息。
智能化和企业化的趋势,大数据系统开始进入到“自动驾驶”这样一个发展阶段,这也是飞天大数据平台“Auto Data Warehouse”项目会继续重点发力的方向。
当前大数据开始向各个细分的纵深领域发展,比如图计算,甚至如密态计算等的场景也开始向前发展了。因此未来可能不会有某一个引擎,或者某一个平台,能适配所有场景。未来需要的是融合型的大数据解决方案,即不同引擎在每个细分领域做到最优,最后组合到一起。
针对上述方向, 飞天大数据平台会在核心引擎优化、智能数仓、AI 协同和数据治理等方面继续发力,将大数据和 AI 普惠到各行各业。
采访嘉宾介绍
关涛(花名:观滔),阿里云智能计算平台研究员,通用计算平台负责人。2016 至今,带领百人团队负责阿里巴巴大数据平台的开发、测试、部署、运维和内外业务支持。整个平台集群目前部署在多个国家 10+个集群,共计十万台服务器,EB 级别数据,日均处理作业量超过 800 万。加入阿里云之前,在微软云计算和企业事业部工作 10 年,主持和参与开发了包括 Cosmos/Scope,Kirin Store,SearchRepository 在内的多套超大规模分布式存储和计算平台。并著有多篇国内外会议论文和专利。
徐晟(花名:升龙),阿里云智能计算平台事业部资深技术专家,带领团队研发飞天大数据平台的数据综合治理和数据智能云研发平台,布局整个大数据和 AI 的生态链。
评论