Snowflake如日中天是否代表Hadoop已死?大数据体系到底是什么?

简介: 本文作者关涛是大数据系统领域的资深专家,在微软(互联网/Azure云事业群)和阿里巴巴(阿里云)经历了大数据发展20年过程中的后15年。本文试从系统架构的角度,就大数据架构热点,每条技术线的发展脉络,以及技术趋势和未解问题等方面做一概述。

作者 | 阿里云计算平台研究员关涛、阿里巴巴项目管理专家王璀

任何一种技术都会经历从阳春白雪到下里巴人的过程,就像我们对计算机的理解从“戴着鞋套才能进的机房”变成了随处可见的智能手机。在前面20年中,大数据技术也经历了这样的过程,从曾经高高在上的 “火箭科技(rocket science)”,成为了人人普惠的技术。

回首来看,大数据发展初期涌现了非常多开源和自研系统,并在同一个领域展开了相当长的一段“红海”竞争期,例如Yarn VS Mesos、Hive VS Spark、Flink VS SparkStreaming VS Apex、Impala VS Presto VS Clickhouse等等。经历激烈竞争和淘汰后,胜出的产品逐渐规模化,并开始占领市场和开发者。

事实上,近几年,大数据领域已经没有再诞生新的明星开源引擎(Clickhouse@2016年开源,PyTorch@2018年开源),以Apache Mesos等项目停止维护为代表,大数据领域进入“后红海”时代:技术开始逐步收敛,进入技术普惠和业务大规模应用的阶段。

本文作者关涛是大数据系统领域的资深专家,在微软(互联网/Azure云事业群)和阿里巴巴(阿里云)经历了大数据发展20年过程中的后15年。本文试从系统架构的角度,就大数据架构热点,每条技术线的发展脉络,以及技术趋势和未解问题等方面做一概述。

值得一提的是,大数据领域仍然处于发展期,部分技术收敛,但新方向和新领域层出不穷。本文内容和个人经历相关,是个人的视角,难免有缺失或者偏颇,同时限于篇幅,也很难全面。仅作抛砖引玉,希望和同业共同探讨。

一、当下的大数据体系热点

BigData概念在上世纪90年代被提出,随Google的3篇经典论文(GFS,BigTable,MapReduce)奠基,已经发展了将近20年。这20年中,诞生了包括Google大数据体系,微软Cosmos体系,阿里云的飞天系统,开源Hadoop体系等优秀的系统。这些系统一步步推动业界进入“数字化“和之后的“AI化”的时代。

海量的数据以及其蕴含的价值,吸引了大量投入,极大的推动大数据领域技术。云(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架构具备更好的灵活性和潜力,会是未来发展的方向。

20210803111921.jpg

(图:三种大数据体系架构)

1.2 数据管理角度,数据湖与数据仓库融合,形成湖仓一体

数据仓库的高性能与管理能力,与数据湖的灵活性,仓和湖的两套体系在相互借鉴与融合。在2020年各个厂商分别提出湖仓一体架构,成为当下架构演进最热的趋势。但湖仓一体架构有多种形态,不同形态尚在演进和争论中。

image.png

(图:数据湖与数据仓库借鉴融合)

1.3 云架构角度,云原生与托管化成为主流

随着大数据平台技术进入深水区,用户也开始分流,越来越多的中小用户不再自研或自建数据平台,开始拥抱全托管型(通常也是云原生)的数据产品。Snowflake作为这一领域的典型产品,得到普遍认可。面向未来,后续仅会有少量超大规模头部公司采用自建(开源+改进)的模式。

image.png

(图: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个领域,具体如下图。

image.png

(图:基于 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,是多层存储系统的关键挑战。这领域起步不久,开源领域没有显著好的产品,最好的水平由几个大厂的自研数仓存储系统引领。

image.png

(图:阿里巴巴 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论文开始提出的全分布式架构则更加去中心化。调度器之间没有任何的协调,并且使用很多各自独立的调度器来处理不同的负载。
  • 混合式调度架构:这种架构结合了中心化调度和共享状态的设计。一般有两条调度路径,分别为为部分负载设计的分布式调度,和来处理剩下的负载的中心式作业调度。

image.png

(图 :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服务,支持多引擎对湖和仓数据存储层的访问。

对比第一代与第二代元数据系统:

image.png

展望未来,我们看到可能的发展方向/趋势主要有:

  1. 趋势一:湖仓一体进一步发展下,元数据的统一化,以及对湖上元数据和数据的访问能力建设。如基于一套账号体系的统一的元数据接口,支持湖和仓的元数据的访问能力。以及多种表格式的ACID的能力的融合,这个在湖上数据写入场景越来越丰富时,支持Delta,Hudi,IceBerg表格式会是平台型产品的一个挑战。
  2. 趋势二:元数据的权限体系转向企业租户身份及权限体系,不再局限于单个引擎的限制。
  3. 趋势三:元数据模型开始突破关系范式的结构化模型,提供更丰富的元数据模型,支持标签,分类以及自定义类型和元数据格式的表达能力,支持AI计算引擎等等。

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金蝶携手工商银行完成首单数字人民币费用报销业务

2021年12月17日,金蝶业务系统成功完成首单使用数字人民币进行的公转私支付业务。据悉,这是中国工商银行股份有限公司(以下简称“工商银行”)第一笔使用“数字人民币银企直连”进行的公转私支付费用报销业务,也是金蝶成…

Java对象转换方案分析与mapstruct实践

简介: 随着系统模块分层不断细化,在Java日常开发中不可避免地涉及到各种对象的转换,如:DO、DTO、VO等等,编写映射转换代码是一个繁琐重复且还易错的工作,一个好的工具辅助,减轻了工作量、提升开…

致敬 hacker |盘点内存虚拟化探索之路

简介: 内存虚拟化相比裸机,仍然存在较大差异,是当下值得关注的问题! 云与虚拟化 云计算是通过 Internet 服务的方式提供动态可伸缩资源的计算模式,经过多年的发展已成为企业 IT 技术的重要支撑。虚拟化是云计算的核心…

minwindow java_java中setMinWindowLayout()是什么呀?

展开全部分析代码 ,可以看出SInfo 是JFrame的子类.setMinWindowLayout() 方法,就可能就是该类自定义的方法,因为JFrame并没e68a8462616964757a686964616f31333431373937有该方法.根据该方法名推测, 这个方法应该就是设置界面布局的方法,主要用于调整组件(按钮,输入框...等)的位…

走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型

随着数字化转型步入“深水区”,云计算、5G、AI 等新一代技术落地应用各行各业。企业对“端到端”解决方案的需求愈发强烈,亟待统一规划、建设和交付的“端到端”解决方案。对此,作为业界领先的数字化解决方案领导者,新华三自 2019…

阿里云马涛:什么是操作系统的云原生?

简介: 云原生已经成为IT界最流行的一个定语,似乎不谈云原生就out了,但什么才是真正的云原生? 注:本文作者马涛,阿里云智能研究员、阿里巴巴集团内核团队创始人之一、阿里云基础软件部操作系统团队负责人。…

pip 安装_安装 pip 轻松管理 PyPI 软件包 | Linux 中国

在 Linux、Mac 或 Windows 上为旧版 Python 安装 pip。-- Vijay Singh KhatriPython 是一种功能强大、流行广泛的编程语言,在常规编程、数据科学等很多方面它都有丰富的软件包可供使用。但这些软件包通常都不会在 Python 安装时自动附带,而是需要由用户自…

技术解析:一文看懂 Anolis OS 国密生态 | 龙蜥专场

简介: Anolis OS国密是社区在Anolis OS上做的国密技术解决方案。 编者注:本文系两位演讲者整理,他们在2021年阿里云开发者大会的「开源操作系统社区和生态分论坛」上带了分享,演讲主题为《国密技术开发与实践》,为国内…

场景联创 施耐德电气“绿色智能制造创赢计划”第二季收官

中国上海,2021年12月21日——今日,由工业和信息化部国际经济技术合作中心(工信部国合中心)与施耐德电气主办的“绿色智能制造创赢计划”第二季总决赛在上海举办。经过半年多的加速营培训、场景探访与联合方案开发,最终…

DLF +DDI 一站式数据湖构建与分析最佳实践

简介: 本文由阿里云数据湖构建 DLF 团队和 Databricks 数据洞察团队联合撰写,旨在帮助您更深入地了解阿里云数据湖构建(DLF)Databricks 数据洞察(DDI)构建一站式云上数据入湖。 作者陈鑫伟(熙康…

pip升级python包命令_python安装扩展库常用的是什么工具

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果你在 http://python.org 下载最新版本的安装包,则是已经自带了该工具。Python 2.7.9 或 Python 3.4 以上版本都自带 pip 工具。pip 官网:https:/…

获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解

简介: 近日,在国际体系架构顶会USENIX ATC2021上,阿里云飞天伏羲团队与香港中文大学合作的一篇论文《Scaling Large Production Clusters with Partitioned Synchronization》不仅成功被大会录取,而且被大会专家组评定为三篇最佳论…

svg入门经典pdf_机器学习最好的入门课程是什么?

最近老胡不太忙了,项目告一段落,摸鱼时间多了一些。昨天我翻译了一个思维导图《超详细的人工智能专家路线图》强烈建议没有看的同学看一看,查漏补缺必备机器学习从 入 门 到 精 通 路 线 图翻完之后自己也有很大的收获,所以准备干…

MaxCompute跨境访问加速解决方案

简介: MaxCompute联合全球加速服务,为有跨境访问需求的MaxCompute客户提供一套高效稳定的跨境访问加速方案。 MaxCompute联合全球加速服务,为有跨境访问需求的MaxCompute客户提供一套高效稳定的跨境访问加速方案。 背景信息 MaxCompute的大…

借助钉钉宜搭,奶茶店开始用黑科技管理门店了

简介: 投诉处理的速度变快了——这是7分甜消费者在这个初夏最直观的感受,借助钉钉宜搭的低代码能力实现的数字化管理,过去7分甜的许多管理痛点,现在正被一一攻克。 一方小小的奶茶零售门店,内里乾坤万千。7分甜成立于2…

爬虫爬到的网页源代码不是真正的源代码_Python爬虫经常爬不到数据?你可以看一下这篇文章...

近期,通过做了一些小的项目,觉得对于Python爬虫有了一定的了解,于是,就对于Python爬虫爬取数据做了一个小小的总结,希望大家喜欢!1.最简单的Python爬虫最简单的Python爬虫莫过于直接使用urllib.request.url…

德勤发布2021年度企业AI应用现状报告,AI驱动已成竞争必需品

1、报告显示,与全球企业相比,中国企业对AI的负面影响,表现出了更多恐惧和担忧。 2、战略上,报告鼓励企业抓住机会,相信一切皆有可能,不要让“成本支出”的目标导致错失良机。 3、报告显示尽管真正意义上的“…

试着读懂你的心——闲鱼聊天小助手的探索之路

简介: 读懂你的心 作者:闲鱼技术——有攸 一、背景: 卡耐基在《人性的弱点》一书中说:“世界上唯一能影响他人的方法,就是谈论他所要的,而且还要告诉他,如何才能得到他所要的”。由此可见&am…

python 闭包_Python中的闭包

一、什么是闭包在谈之前,我们先来说说作用域,变量的作用域无非就两种:全局变量和局部变量。函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。出于种种原因,我们有时候需要获取到函数内部的局…

Flink 在爱奇艺广告业务的实践

简介: 5 月 22 日北京站 Flink Meetup 分享的议题。 本文整理自爱奇艺技术经理韩红根在 5 月 22 日北京站 Flink Meetup 分享的议题《Flink 在爱奇艺广告业务的实践》,内容包括: 业务场景业务实践Flink 使用过程中的问题及解决未来规划一、业…