海量的数据以及其蕴含的价值,吸引了大量投入,极大的推动大数据领域技能。云(Cloud)的鼓起又使得大数据技能对于中小企业唾手可得。可以说,大数据技能发展正当时。
从体系架构的角度看,“Shared-Everything”架构演进、湖仓技能的一体化融合、云原生带来的底子计划升级、以及更好的AI支持,是当下平台技能的四个热点。
1.1 系统架构角度,平台团体向Shared-Everything架构演进
泛数据领域的系统架构,从传统数据库的Scale-up向大数据的Scale-out发展。从分布式系统的角度,团体架构可以按照Shared-Nothing(也称MPP), Shared-Data, Shared-Everything 三种架构。
大数据平台的数仓体系最初由数据库发展而来,Shared-Nothing(也称MPP)架构在很长一段时间成为主流。随云原生能力增强,Snowflake为代表的Shared-Data徐徐发展起来。而基于DFS和MapReduce原理的大数据体系,计划之初就是Shared-Everything架构。
Shared-Everything架构代表是GoogleBigQuery和阿里云MaxCompute。从架构角度,Shared-Everything架构具备更好的灵活性和潜力,会是未来发展的方向。
(图:三种大数据体系架构)
1.2 数据管理角度,数据湖与数据仓库融合,形成湖仓一体
数据仓库的高性能与管理能力,与数据湖的灵活性,仓和湖的两套体系在相互鉴戒与融合。在2020年各个厂商分别提出湖仓一体架构,成为当下架构演进最热的趋势。但湖仓一体架构有多种形态,差别形态尚在演进和争论中。
(图:数据湖与数据仓库鉴戒融合)
1.3 云架构角度,云原生与托管化成为主流
随着大数据平台技能进入深水区,用户也开始分流,越来越多的中小用户不再自研或自建数据平台,开始拥抱全托管型(通常也是云原生)的数据产品。Snowflake作为这一领域的典型产品,得到普遍认可。面向未来,后续仅会有少量超大规模头部公司采用自建(开源+改进)的模式。
(图:snowflake的云原生架构)
1.4 盘算模式角度,AI徐徐成为主流,形成BI+AI双模式
BI作为统计分析类盘算,重要是面向过去的总结;AI类盘算则具备越来越好的猜测未来的能力。在过去五年中,算法类的负载从不到数据中心总容量的5%,提升到30%。AI已经成为大数据领域的一等公民。
大数据体系的领域架构
在前文(#1.1)介绍的Shared-Nothing、Shared-Data、Shared-Everything 三种架构中,笔者经历过的两套体系(微软Cosmos/Scope体系,和阿里云MaxCompute)均为Shared-Everything架构,因此笔者重要从Shared-Everything架构角度,将大数据领域分成6个叠加的子领域、3个横向领域,共9个领域,具体如下图。
(图:基于 Shared-Everything 大数据体系下的领域架构)
颠末多年的发展,每个领域都有一定的希望和沉淀,下面各个章节将概述每个子领域的演进汗青、背后驱动力、以及发展方向。
2.1 分布式存储向多层智能化演进
分布式存储,本文特指通用大数据海量分布式存储,是个典型的带状态(Stateful)分布式系统,高吞吐、低本钱、容灾、高可用是核心优化方向。(注:下述分代仅为了阐述方便,不代表严格的架构演进。)
**第一代,分布式存储的典型代表是谷歌的GFS和Apache Hadoop的HDFS,均为支持多备份的Append-only文件系统。**因HDFS早期NameNode在扩展性和容灾方面的短板不能充实满足用户对数据高可用的要求,许多大型公司都有自研的存储系统,如微软的Cosmos(厥后演进成Azure Blob Storage),以及阿里巴巴的Pangu系统。HDFS作为开源存储的奠定,其接口成为事实尺度,同时HDFS又具备支持其他系统作为背后存储系统的插件化能力。
第二代,基于上述底盘,随海量对象存储需求激增(例如海量的照片),通用的Append-only文件系统之上,封装一层支持海量小对象的元数据服务层,形成对象存储(Object-based Storage),典型的代表包括AWS S3,阿里云OSS。值得一提的是,S3与OSS均可作为尺度插件,成为HDFS的事实存储后端。
**第三代,以数据湖为代表。**随云盘算技能的发展,以及(2015年之后)网络技能的进步,存储盘算一体的架构徐徐被云原生存储(存储托管化)+ 存储盘算分离的新架构取代。这也是数据湖体系的出发点。同时因存储盘算分离带来的带宽性能题目并未完全办理,在这个细分领域诞生了Alluxio等缓存服务。
第四代,也是当下的趋势,随存储云托管化,底层实现对用户透明,因此存储系统有机会向更复杂的计划方向发展,从而开始向多层一体化存储系统演进。由单一的基于SATA磁盘的系统,向Mem/SSD+SATA (3X备份)+SATA (1.375X为代表的EC备份)+冰存储(典型代表AWS Glacier)等多层系统演进。
怎样智能/透明的将数据存储分层,找到本钱与性能的Trade-off,是多层存储系统的关键挑衅。这领域起步不久,开源领域没有显著好的产品,最好的程度由几个大厂的自研数仓存储系统引领。
(图:阿里巴巴 MaxCompute 的多层一体化存储体系)
在上述系统之上,有一层文件存储格式层(File Format layer),与存储系统自己正交。
存储格式第一代,包罗文件格式、压缩和编码技能、以及Index支持等。现在主流两类的存储格式是Apache Parquet和Apache ORC,分别来自Spark和Hive生态。两者均为适应大数据的列式存储格式,ORC在压缩编码上有特长,Parquet在半结构支持上更优。此外另有一种内存格式Apache Arrow,计划体系也属于format,但重要为内存交换优化。
**存储格式第二代 - 以 Apache Hudi/Delta Lake 为代表的近及时化存储格式。**存储格式早期,是大文件列存储模式,面向吞吐率优化(而非latency)。随着及时化的趋势,上述主流的两个存储模式均向支持及时化演进,Databricks推出了Delta Lake,支持Apache Spark进行近及时的数据ACID操作;Uber推出了Apache Hudi,支持近及时的数据Upsert能力。
只管二者在细节处置惩罚上稍有差别(例如Merge on Read or Write),但团体方式都是通过支持增量文件的方式,将数据更新的周期降低到更短(避免传统Parquet/ORC上的针对更新的无差别FullMerge操作),进而实现近及时化存储。由于近及时方向,通常涉及更频繁的文件Merge以及细粒度元数据支持,接口也更复杂,Delta/Hudi均不是单纯的format、而是一套服务。
存储格式再向及时更新支持方向演进,会与及时索引结合,不再单单作为文件存储格式,而是与内存结构融合形成团体方案。主流的是及时更新实现是基于LogStructuredMergeTree(几乎所有的及时数仓)大概Lucene Index(Elastic Search的格式)的方式。
从存储系统的接口/内部功能看,越简单的接口和功能对应更开放的能力(例如GFS/HDFS),更复杂更高效的功能通常意味着更封闭,并逐步退化成存算一体的系统(例如AWS当家数仓产品RedShift),两个方向的技能在融合。
展望未来,我们看到可能的发展方向/趋势重要有:
1)平台层面,存储盘算分离会在两三年内成为尺度,平台向托管化和云原生的方向发展。平台内部,精致化的分层成为均衡性能和本钱的关键本领(这方面,当前数据湖产品还做得远远不够),AI在分层算法上发挥更大的作用。
2)Format层面,会继续演进,但大的突破和换代很可能取决于新硬件的演进(编码和压缩在通用处置惩罚器上的优化空间有限)。
3)数据湖和数仓进一步融合,使得存储不仅仅是文件系统。存储层做的多厚,与盘算的界限是什么,仍旧是个关键题目。
2.2 分布式调理,基于云原生,向统一框架和算法多元化发展
盘算资源管理是分布式盘算的核心能力,本质是办理差别种类的负载与资源最优匹配的题目。在“后红海时代”,Google的Borg系统,开源Apache Yarn 仍旧是这个领域的关键产品,K8S在大数据盘算调理方向上仍在起步追赶。
常见的集群调理架构有:
- 中心化调理架构:早期的Hadoop1.0的MapReduce、后续发展的Borg、和Kubernetes都是中心化计划的调理框架,由单一的调理器负责将任务指派给集群内的机器。特殊的,中心调理器中,大多数系统采用两级调理框架通过将资源调理和作业调理分开的方式,允许根据特定的应用来定做差别的作业调理逻辑,并同时保留了差别作业之间共享集群资源的特性。Yarn、Mesos都是这种架构。
- 共享状态调理架构:半分布式的模式。应用层的每个调理器都拥有一份集群状态的副本,并且调理器会独立地对集群状态副本进行更新。如Google的Omega、Microsoft的Apollo,都是这种架构。
- 全分布式调理架构:从Sparrow论文开始提出的全分布式架构则更加去中心化。调理器之间没有任何的和谐,并且使用许多各自独立的调理器来处置惩罚差别的负载。
- 混合式调理架构:这种架构结合了中心化调理和共享状态的计划。一样平常有两条调理路径,分别为为部分负载计划的分布式调理,和来处置惩罚剩下的负载的中心式作业调理。
(图 :The evolution of cluster scheduler architectures by Malte Schwarzkopf)
无论大数据系统的调理系统是基于哪种架构,在海量数据处置惩罚流程中,都需要具备以下几个维度的调理能力:
- 数据调理:多机房跨地区的系统服务带来全域数据排布题目,需要最优化使用存储空间与网络带宽。
- 资源调理:IT底子设施团体云化的趋势,对资源的调理和隔离都带来更大的技能挑衅;同时物理集群规模的进一步扩大,去中心化的调理架构成为趋势。
- 盘算调理:经典的MapReduce盘算框架徐徐演化到支持动态调整、数据Shuffle的全局优化、充实使用内存网络等硬件资源的精致化调理时代。
- 单机调理:资源高压力下的SLA保障不停以来是学术界和工业界发力的方向。Borg等开源探索都假设在资源辩论时无条件向在线业务倾斜;但是离线业务也有强SLA需求,不能随意牺牲。
展望未来,我们看到可能的发展方向/趋势重要有:
1.K8S统一调理框架:Google Borg很早就证实了统一的资源管理有利于最优匹配和削峰填谷,只管K8S在“非在线服务”调理上仍旧有挑衅,K8S正确的定位和灵活的插件式计划应该可以成为终极的赢家。大数据调理器(比如KubeBatch)是现在投资的一个热点。
2.调理算法多元化和智能化:随各种资源的解耦(例如,存储盘算分离),调理算法可以在单一维度做更深度的优化,AI优化是关键方向(实际上,许多年前Google Borg就已经采用蒙特卡洛Simulation做新任务资源需求的猜测了)。
3.面向异构硬件的调理支持:众核架构的ARM成为通用盘算领域的热点,GPU/TPU等AI加快芯片也成为主流,调理系统需要更好支持多种异构硬件,并抽象简单的接口,这方面K8S插件式计划有显着的上风。
2.3 元数据服务统一化
元数据服务支持了大数据平台及其之上的各个盘算引擎及框架的运行,元数据服务是在线服务,具有高频、高吞吐的特性,需要具备提供高可用性、高稳定性的服务能力,需要具备持续兼容、热升级、多集群(副本)管理等能力。重要包括以下三方面的功能:
- DDL/DML的业务逻辑,保障ACID特性,保障数据完整性和一致性
- 授权与鉴权能力,保证数据访问的安全性
- Meta(元数据) 的高可用存储和查询能力,保障作业的稳定性
**第一代数据平台的元数据系统,是Hive的Hive MetaStore(HMS)。**在早期版本中HMS元数据服务是Hive的内置服务,元数据更新(DDL)以及DML作业数据读写的一致性和Hive的引擎强耦合,元数据的存储通常托管在MySQL等关系数据库引擎。
随着客户对数据加工处置惩罚的一致性(ACID),开放性(多引擎,多数据源),及时性,以及大规模扩展能力的要求越来越高,传统的HMS逐步范围于单集群,单租户,Hive为主的单个企业内部使用,为保障数据的安全可靠,运维本钱居高不下。这些缺点在大规模生产情况逐步暴露出来。
第二代元数据系统的代表,有开源体系的Apache IceBerg,和云原生体系的阿里巴巴大数据平台MaxCompute的元数据系统。
IceBerg是开源大数据平台近来两年出现的独立于引擎和存储的“元数据系统”,其要办理的核心题目是大数据处置惩罚的ACID,以及表和分区的元数据的规模化之后性能瓶颈。在实现方法上IceBerg的ACID依托了文件系统POSIX的语义,分区的元数据采用了文件方式存储,同时,IceBerg的Table Format独立于Hive MetaStore的元数据接口,因此在引擎的adoption上本钱很高,需要各个引擎改造。
基于未来的热点和趋势的分析,开放的,托管的统一元数据服务越来越重要,多家云厂商,都开始提供了DataCatalog服务,支持多引擎对湖和仓数据存储层的访问。
对比第一代与第二代元数据系统:
展望未来,我们看到可能的发展方向/趋势重要有:
- 趋势一:湖仓一体进一步发展下,元数据的统一化,以及对湖上元数据和数据的访问能力建设。如基于一套账号体系的统一的元数据接口,支持湖和仓的元数据的访问能力。以及多种表格式的ACID的能力的融合,这个在湖上数据写入场景越来越丰富时,支持Delta,Hudi,IceBerg表格式会是平台型产品的一个挑衅。
- 趋势二:元数据的权限体系转向企业租户身份及权限体系,不再范围于单个引擎的限定。
- 趋势三:元数据模型开始突破关系范式的结构化模型,提供更丰富的元数据模型,支持标签,分类以及自定义范例和元数据格式的表达能力,支持AI盘算引擎等等。
本文具体阐述了后红海时代,当下大数据体系的演进热点是什么,以及大数据体系下部分子领域架构的技能解读。
限于篇幅原因,更多大数据体系子领域的技能解读将在下篇文章继续睁开,并阐述大数据体系未来演进的技能趋势,以及仍待探索的未解题目。
关涛(TonyGUAN),时任阿里巴巴研究员、阿里巴巴技能委员会盘算平台领域组长、阿里云通用盘算平台MaxCompute/DataWorks负责人。2006年进入微软亚洲研究院开始从事分布式数据系统开辟的工作,曾参与/负责多项微软搜索和Azure云的超大规模分布式系统的工作,14年大数据领域经验,2016年初从微软美国返国参加阿里巴巴。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |