大数据云原生技术发展研究报告 (2023年) 先进计算产业发展联盟 2023年12月 研究报告要点 随着行业的快速发展,数据量也呈爆炸式增长,大数据已成为决策的基本工具,企业面临着数据管理和处理的巨大挑战。围绕Hadoop的传统大数据架构在交付运维,资源利用率,系统迭代与兼容性,安全等方面存在诸多不足。 随着以Kubernetes为代表的云原生概念的兴起,越来越多的企业投身于云原生转型的浪潮,以解决传统应用面临的弹性能力不足、资源利用率较低、迭代周期较长等问题。当前云原生的发展已比较成熟,成为数字化转型的重要支撑技术。 大数据和云原生技术的融合,逐渐成为企业数字化转型的重要演进方向,目前还处于高速发展,百家争鸣的阶段,一些企业已经在大数据云原生之路上砥砺前行,而国内大部分企业依然处于观望状态。 同时可以看到,业界在大数据与云原生结合的定义和方向上,有一些不同的声音,不同企业融合的方式也有所不同。大数据和云计算要不要融合?如何融合?都是人们所关心的话题。 带着这个问题,我们希望基于之前积累的经验,结合工作中的痛点,调研并产出一份尽量中立、客观、完整的大数据云原生技术发展报告,希望能为相关企业、研发团队和需要大数据的客户提供参考。也希望能抛砖引玉,吸引更多企业专家的参与,引发后面更专业,更大范围有关大数据云原生技术的讨论,最终能促进一些共识,提升大 数据云原生的技术普惠,“旧时王谢堂前燕,飞入寻常百姓家”,为国家数字化转型,做一点贡献。 本报告将从以下几个方向来阐述: 1.大数据与云原生技术的发展与演进:介绍大数据技术的演进,云原生技术的发展,以及它们融合的情况。 2.传统大数据平台的痛点:探讨传统大数据平台交付运维成本高、资源利用低效、迭代兼容性及安全性问题等关键痛点。 3.云原生技术解决思路:详细说明云原生技术解决这些关键痛点的思路,以及云原生技术带来的其它好处和引入的新挑战。 4.大数据云原生技术架构简述:简述大数据云原生技术的设计思路和参考架构,包括弹性伸缩、资源隔离、容器化、统一资源调度、多计算引擎管理、统一数据湖管理以及智能化运维等方面。 5.大数据云原生的未来发展和建议:最后简单提出对大数据云原生技术未来发展和建议,以提升大数据云原生的技术普惠。 由于时间仓促,水平所限,错误和不足之处在所难免,欢迎各位读者批评指正,意见及建议请发送至wangxiaogang@chinatelecom.cn。 研究单位:天翼云科技有限公司课题负责人:王小刚 课题参加人:侯圣文,张桐,李冰,金喆,李启蒙,黄俊慧,李庆森完成日期:2023年12月 目录 一、大数据平台与云原生技术的发展与演进1 (一)数据平台的发展与演进1 (二)云原生技术简述9 (三)大数据与云原生结合分析12 二、传统大数据平台的需求与痛点15 (一)交付运维成本高16 (二)资源利用率低17 (三)系统迭代与兼容性挑战18 (四)安全相关挑战19 三、云原生技术解决大数据问题的思路20 (一)云原生技术提升运维交付质量与效率20 (二)云原生技术提升集群资源使用率和弹性22 (三)云原生技术提升大数据平台迭代效率26 (四)云原生技术提升大数据安全和隐私保护27 (五)云原生技术带来的其它好处31 (六)大数据云原生引入的新挑战35 四、大数据云原生技术的架构简述40 (一)云原生大数据平台的架构原则40 (二)云原生大数据平台的参考架构41 五、大数据云原生的未来发展和战略建议44 (一)技术发展方向44 (二)针对行业的建议44 (三)针对企业和用户的建议45 六、参考文献46 一、大数据平台与云原生技术的发展与演进 (一)数据平台的发展与演进 需求催生技术革新,在海量数据需求的推动下,数据平台架构持续演进,经过数十年的发展,历经了数据库、数据仓库、数据湖、湖仓一体等概念。这里按出现顺序简述:(其中关于数据湖和湖仓一体目前业界有多种不同的定义,这里我们采用其中一种定义说明) 来源:CCSATC601大数据技术标准推进委员会 图1:数据分析技术演进图 数据库(DataBase): 自1980年代初至中期起,数据管理工具主要呈现为数据库形式,以面向事务交易的OLTP场景为主,数据分析功能则作为辅助。这些数据库主要用于向管理层提供固定报表,支持宏观管理决策。它们通过标准SQL提供数据分析能力,主要代表产品包括Oracle、SqlServer、Mysql等。 图2早期数据库阶段系统架构 数据仓库(DataWarehouse): 随着互联网的快速普及,门户、搜索引擎、百科等应用快速增长,数据量呈爆发式增长,原有的单个关系型数据库架构无法支撑庞大的数据量。20世纪90年代数据仓库理论被提出,核心是基于OLTP系统的数据源,根据联机分析处理OLAP场景诉求,将数据经过数仓建模形成ODS、DWD、DWS、DM等不同数据层,每层都需要进行清洗、加工、整合等数据开发(ETL)工作,并最终加载到关系型数据库中。 来源:云原生产业联盟 图3:OLAP系统建设 数据仓库架构是为了解决单个关系型数据库架构无法支撑庞大数据量的数据存储分析问题。传统数据仓库多为MPP(MassivelyParallelProcessor)架构,代表产品有Teradata、Greenplum等,当前MPP架构依然为新型数仓的重要选择,比如ClickHouse,Doris,StarRocks等。 随着Hadoop技术的成熟与普及,基于Hadoop自建离线数据仓库(Hive)是常见的大数据平台之上数据仓库方案,在目前依然发挥着重要的作用。 数据湖(DataLake): 随着移动互联网的飞速发展,半结构化、非结构化数据的存储、计算需求日益突出,对数据平台提出了新的要求。 以开源Hadoop体系为代表的开放式HDFS存储(或S3)、开放的文件格式、开放的元数据服务(HiveMetastore等)以及多种引擎(Hive、Spark、Flink、Presto等)协同工作的模式,形成了数据湖的雏形。 图4:Hadoop生态系统重要组件 来源:云原生产业联盟 2010年,数据湖概念被提出,数据湖是一种支持结构化、半结构化、非结构化等数据类型大规模存储和计算的系统架构。数据湖与数据仓库的主要区别在于数据仓库中数据在进入仓库之前是需要实现归类,而数据湖是把大量原始数据通过廉价存储保存下来。数据湖架构的特点可总结为:低成本、原始数据、需灵活使用、面向任务数据绑定、不提前定义数据模型。 4 从解决场景的角度来看,数据仓库和数据湖各有其适合覆盖场景,基本上属于互补关系,前者更多是解决固定的、明确的数据问题;后者则为应对随机性、探索式的数据问题。下图是一个示意图。 来源:Gartner 图5:数据仓库和数据湖的场景 湖仓一体(LakeHouse): 为满足多种数据类型存储、多场景分析等业务诉求,企业的数据采用混合部署模式,其中数据湖和数据仓库通过ETL进行数据交换,数据湖和数据仓库是两套独立的体系。 图6:湖+仓混合架构图 来源:CCSATC601 “数据湖+数据仓库”混合架构满足了结构化、半结构化、非结构化数据高效处理需求,解决了传统数据仓库在海量数据下加载慢、数据查询效率低、难以融合多种异构数据源进行分析的问题,但混合架构是技术向业务妥协的一个产物,存在数据冗余,增加存储成本,两个系统间额外的ETL流程导致时效性差,数据一致性保障低,混合架构开发运维复杂等弊端。 2020年Databricks提出“湖仓一体”的概念,到目前技术和概念侧依然在持续演进。湖仓一体是指融合数据湖与数据仓库的优势,形成一体化、开放式数据处理平台的技术。通过湖仓一体技术,可使得数据处理平台底层支持多数据类型统一存储,实现数据在数据湖、数据仓库之间无缝调度和管理,并使得上层通过统一接口进行访问查询 和分析。总的来看,湖仓一体通过引入数据仓库治理能力,既可以很好解决数据湖建设带来的数据治理难问题,也能更好挖掘数据湖中的数据价值,将高效建仓和灵活建湖两大优势融合在一起,提升了数据管理效率和灵活性。 湖仓一体目前没有统一的架构,在企业需求的驱动下,各开源技术和厂商基于原有架构演进,数据湖与数据仓库在原本的范式之上扩展。逐渐形成了“湖上建仓”与“仓外挂湖”两种湖仓一体实现路径。如图7和表2所示。湖上建仓和仓外挂湖虽然出发点不同,但最终湖仓一体的目标一致。 图7:湖仓一体架构模块图 (二)云原生技术简述云原生的发展简述: 云原生(CloudNative),最初由Pivotal公司的MattStine在2013年提出,随后Linux基金会在2015年成立了云原生计算基金会(CNCF)。CNCF不仅推广了云原生这一概念,还逐步构建了以云原生为核心的技术生态工具。到2018年,Kubernetes成为CNCF的首个毕业项目。目前,Kubernetes已经确立了在容器编排领域的领导地位,并推动了云原生技术的广泛应用。 来源:https://landscape.cncf.io/ 图8:云原生Landscape(景观)指南 云原生的核心思想: 云原生普遍被认为包含四大核心要素:DevOps、微服务、持续交付和容器化。 DevOps:DevOps是开发(Development)和运维(Operations)的结合,它推动了开发和运维团队的紧密协作。在DevOps文化中,软件的开发、测试、部署和监控过程是连续的,不断循环,旨在加快软件交付速度并提高质量。 持续交付:持续交付是一种软件工程方法,它允许软件在短时间内且持续地被交付到生产环境。它通过自动化开发、测试和部署流程来支持频繁的版本发布,旨在减少发布新功能和修复的时间。 微服务:微服务架构是一种设计方法,将应用程序分解为一组较小、相互独立的服务,每个服务都围绕特定业务功能构建,并可独立部署。 容器:容器技术,如Docker,提供了一种轻量级、可移植的方法来封装、部署和运行应用。Kubernetes(K8S)则发展为容器编排和管理的领导者,它提供了高级的部署、扩展和运行容器化应用的能力。 CNCF重新定义云原生: 随着云原生生态的不断壮大,CNCF基金会容纳的项目越来越多,到了2018年,原来的定义已经限制了云原生生态的发展,CNCF为云原生进行了重新定义: “云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。 云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。” 新的定义继续保持原有的核心内容:容器和微服务,加入了服务网格、不可变基础设施和声明式API这三个重要设计指导理念,并且强调了公有云、私有云和混合云等新型动态环境。 (三)大数据与云原生结合分析 从2018年起,一些开源大数据引擎陆续开始了onKubernetes的探索: 2018年3月,Sparkv2.3.0开始探索onKubernetes 2018年6月,KubernetesAirflowOperator在正式发布 2019年8月,StarburstPresto宣布⽀持K8S 2020年2月,Flinkv1.10.0发布NativeKubernetesbeta版 2020年2月,Hive探索MR3运⾏在Kubernetes上 而到了2021年3月,ApacheSpark3.1正式支持了kubernetes,越来越多的企业开始在生产环境使用大数据云原生融合的技术。 根据Pepperdata关于“2022BigDataonKubernetesReport”显示: 来源:P