【云栖2023】王峰:开源大数据平台3.0技术解读

2023-11-10 19:04

本文主要是介绍【云栖2023】王峰:开源大数据平台3.0技术解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文根据2023云栖大会演讲实录整理而成,演讲信息如下:

演讲人:王峰 | 阿里云研究员,阿里云计算平台事业部开源大数据平台负责人

演讲主题:开源大数据平台3.0技术解读

在这里插入图片描述

实时化与Serverless是开源大数据3.0时代的必然选择

阿里云开源大数据平台孵化于阿里巴巴集团内部业务。早在2009年,我们就开始采用开源 Hadoop 技术体系来服务阿里内部快速发展的电商业务。在阿里巴巴内部这套 Hadoop 技术体系,当时叫云梯一,当发展成熟后,开始上云。我们在阿里云上推出了第一款开源大数据产品 E-MapReduce,简称 EMR 。我们把这个定义为开源大数据平台的第一阶段,也就是1.0的时代,从此刻开始,真正跨入云原生时代。

在这里插入图片描述

随着大数据技术的演进,大数据处理从离线技术架构向实时化演进,我们开始引入了Apache Flink 流计算技术。阿里巴巴对 Apache Flink 社区进行了非常大的资源投入,逐渐成为最大的用户和社区推动者。到现在,Apache Flink 发展成为了全球范围内流计算、实时计算的标准。同时,我们在阿里云上也推出了实时计算Flink版的实时计算云产品服务。

EMR 也在不断地技术演进,从传统的 Hadoop 数仓架构升级到围绕以数据湖为核心的云原生数据湖的技术架构,因此我们把实时化和数据湖这两个技术演进的趋势,称为开源大数据平台2.0阶段。

从今年开始,我们在思考下一段开源大数据平台如何发展演进,我们做了以下几个3.0架构的技术探索,以此更好地服务我们的客户。

首先,我们尝试把实时化的技术分析和数据湖的架构进行融合,我们推出了新一代的Streaming Lakehouse 架构,也就是实时化的数仓分析架构。

第二,随着 serverless 的架构落地不断深入,我们开始考虑什么才是云原生架构终态。今年我们将开源大数据平台所有核心的计算、存储组件实现了 serverless 化。

第三,现在已经全面进入AI爆发的阶段,各行各业都开始使用AI的技术进行自我的革新。我们开始考虑AI的融合,希望把新的AI技术引入大数据平台体系中,实现大数据AI一体化的能力,帮助平台智能化运维和数据管理。

从今年开始,我们采用了新的数据分析架构、完全云原生的架构,并深度结合AI结合,开启3.0的新架构。接下来我将选择几个3.0平台中最核心的技术架构特点给大家做分享:我们做了哪些事情,取得哪些成果,以及未来会如何发展。

新一代的流式湖仓

首先介绍一下,新一代的数据分析架构——流式湖仓。我相信绝大部分用户意识到传统 Hadoop Hive 数仓架构的局限性以及技术发展的趋势,都开始将传统的Hadoop技术向着新一代的湖仓分析 Lakehouse 架构进行演进。

在这里插入图片描述

显而易见,升级到新的 Lakehouse 数据分析架构以后有很多的优势。比如,新Lakehouse 架构是彻底的存算分离,有更好的扩展性、灵活性。同时,新的数据湖格式也带来了更好的实时支持以及查询性能的提升等。Lakehouse 架构带来的收益明显。

但是 Lakehouse 架构是不是已经完美无缺?我觉得还没有到这个地步。现在我们看到Lakehouse 架构在实时化方向还有进一步发展的空间,这也是众多开源用户在使用 Lakehouse 架构时候遇到的痛点:当数据都迁移到 Lakehouse 这个架构上,如何去更加实时化地加速数据处理管道,如何像传统数仓一样去实时分析 Lakehouse 中的数据。

在这里插入图片描述

现在的湖仓,做不到完全的实时化甚至准实时化的效果。究其原因,就是数据湖的存储格式限制了实时化的发展。大家可以看到现在数据湖存储格式主要是 Iceberg、Delta、Hudi 三剑客来构建的,不同的用户和厂商会选择不同的数据库格式。但是Iceberg 和 Delta 是面向批处理而设计的数据湖格式,与批处理的计算引擎配合更多一些,在 Lakehouse 上实现批处理,甚至可能是比较大力度的微批处理,通过merge来更新。这个架构无法彻底实现实时化,或者在实时化的力度上也做不到特别细粒度,比如分钟级的粒度甚至十分钟级的粒度都是非常困难的。

Hudi 的初衷是为了解决这个问题,实现实时化的数据湖格式,提升实时更新,加速数据湖的时效性。但是,目前从架构设计和工程实现效果来看,并没有达到预期,很多客户在使用 Hudi 过程中也踩了很多坑,无论是系统稳定性还是系统的运维复杂度上都面临非常大的挑战。

其实我们可以看到,究其根源还是在湖仓架构上没有一款面向数据实时更新或者实时分析而设计的数据湖格式。去年我们在 Flink 社区进行了技术探索,在 Flink 社区里启动了一个新的子项目叫Flink Table Store,其目的是尝试看PMF(市场的接受程度)。通过Flink Table Store,发现设计一款真正面向实时更新的数据湖格式还是非常有必要的,尤其是跟 Flink 这种实时流式计算引擎配合,完全能在数据湖 Lakehouse 架构上,实现实时化数据链路。

为了让这个项目有更好的发展,我们今年决定把这个项目从Flink社区中独立出来,作为一个独立的 Apache 基金会项目去孵化,使其有一个更大的发展空间,命名为Apache Paimon。

Paimon是真正为实时更新而设计的数据湖格式,并且是完全开放的,不仅支持 Flink,也会支持 Spark、Presto、Channel、StrarRocks 等主流计算引擎。

而且由于设计时天生就是为了实时,所以性能和稳定性都是非常好,在我们典型的应用场景下,与开源 Hudi 方案相比,阿里云流式湖仓方案 Upsert 性能提升超过4倍,Scan 性能提升超过10倍。

在这里插入图片描述

因此,基于 Flink 和 Paimon,我们推出新一代的流式湖仓的数据分析技术,从整个数据的实时入湖到湖上实时ETL数据更新,采用一整套统一的SQL在Lakehouse来进行全链路的实时数据处理。由于Paimon的开放性,我们完全也可以在这个架构中引入大家用得比较多的 Spark、Presto、StrarRocks 这些开源分析引擎,也包括阿里云自研引擎MaxCompute、Hologres 都可以和 Paimon 数据进行无缝对接,实现完全开放的湖仓体系,从而整个链路实现完整的生态,不仅能够实现数据全链路的实时流动,也能实现数据全链路的实时分析。这是整个3.0中数据分析架构中的演进趋势,推动湖仓的实时化。

在这里插入图片描述

全面 Serverless 化

第二个,想介绍一下产品架构,我们的产品和云原生结合也迈出了重要一步,希望开源大数据平台实现全面的 serverless 化。其实 serverless 这个技术已经探索了有好几年,两年前就推出了开源大数据平台的第一款 serverless 产品—— serverless Flink,在阿里云上有非常多的客户使用。

在这里插入图片描述

通过serverless Flink得到很多客户的正向反馈,大家都希望使用开箱即用的开源产品。因此今年我们又推出了四款 serverless 开源大数据产品,两款计算、两款存储。计算型选择了用户呼声最高的 Spark 和 StarRocks,这两款引擎推出了 EMR Serverless StrarRocks 和即将发布的 EMR Serverless Spark 两款计算型 serverless 产品。

同时在存储方面,我们也推出了两款 serverless 产品,第一款是和 OSS 对象存储团队联合合作推出的 OSS-HDFS ,全托管的 serverless HDFS 产品。还有一款是数据湖管理构建产品中推出了完全兼容HMS协议的全托管的 serverless 源数据管理的服务。我们通过这几款产品的组合可以实现几乎所有大数据场景的处理和分析。

为什么一年之内快连续推出四款 serverless 大数据产品,完全得益于我们在技术上做的沉淀。把所有对 serverless 的需求沉淀为大数据 serverless 平台底座,这个平台底座可以屏蔽掉阿里云各种异构硬件和资源池,提供一套完整的多租系统的管理,包括网络隔离、资源隔离等,使得我们可以快速孵化出新的 serverless 大数据产品。

Serverless Flink

第一款产品就是 serverless Flink,它可以连通阿里云上下游的存储,不管是数据库、数据湖,还是数据仓库、消息队列,只要是阿里云上主流的存储数据源都可以一键打通,提供一站式的 SQL 开发平台,包括智能化的运维管理服务,实现开箱即用的效果。同时我们在 serverless Flink 产品中对 Flink 的核心引擎做了大量的优化,并且在阿里巴巴内部大量使用,相对于开源 Flink 引擎有两到三倍的性能提升,所以使用serverless Flink产品不仅是方便提升开发效率,在运行效率上也会大幅节省成本。

今年上半年新推出来另外一个新的 serverless 数据产品就是 serverless StarRocks,主要是解决实时交互式分析 OLAP 场景用户的需求,现在 OLAP 或者实时分析也是热点。我们评估下来目前在开源界内最主流的或者最优秀的 OLAP 引擎是 StarRocks,所以我们选择了 StarRocks 在 EMR 上开通了第一款 serverless OLAP 产品,因为StarRocks 是一个完全向量化的 C++ 引擎,所以性能非常优秀,支持数万的并发。

Serverless StarRocks

同时在最新版本的 StarRocks 中其实也支持存算分离的架构,结合整个产品的云原生能力推出了 Virtual Warehouse 的功能可以兼顾弹性和用户业务之间的隔离性。有了这个存算分离之后,可以将 StarRocks 和数据湖进行打通。流式湖仓会在湖上沉淀出非常多实时更新的数据,这个时候利用 serverless StarRocks 就可以去查询湖上的实时更新数据,即时查询得到一个很好的湖仓一体的效果,称之为大湖小仓的布局。

Serverless Spark

今年还有一款重磅级产品的 serverless 产品就是 serverless Spark。相信 Spark 在开源大数据体系中用得最多的计算引擎,也是现在 EMR 中看到最重要的一款计算引擎。

最近几年,我们不断听到用户的呼声,希望有一款真正全托管免运维 serverless 的Spark 产品,能够帮助客户减轻运维的负担,提升开发的效率,甚至提升运行的效率。因此今年在全面 serverless 化的目标下投入了非常大的资源,做出了 serverless Spark 产品,很快将进行公测和商业化。

Serverless Spark 产品其实是集成了前面两款 Flink 和 StarRocks Serverless 产品的优势,一站式开发和智能化运维都可以实现开箱即用,按量付费完全弹性,包括和数据湖的打通等等。此外我们在Serverless Spark里面还内置了基于 Celeborn 做的一个Serverless 数据服务,这样就可以免除对本地盘的依赖,完全实现整个数据计算的Serverless 化。

Serverless HDFS(OSS-HDFS)

刚才讲了几款 serverless 计算的产品,接下来还有一款产品是非常重要,就是存储的serverless 产品。我们叫 serverless HDFS,官方产品名字是 OSS-HDFS,这是和 OSS 团队一起共建出来的产品形态。

大家都知道 HDFS 已经在大数据业界被大家认为是一款事实标准的文件系统协议,随着越来越多用户把数据搬到数据湖上,同时希望继续使用HDFS协议来访问数据湖上的数据,这样计算都是兼容的。

因此,我们把 OSS 的数据也可以包装成一个看上去像无限大的云 HDFS,这样就可以满足很多用户的需求。所以今年联合 OSS 团队发布了 OSS-HDFS 的 serverless 文件系统,完全兼容 HDFS 。有了这个后,很多用户就不必自己去维护本地HDFS集群,免除了运维的复杂度,而且完全按量付费,有非常好的弹性,结合我们计算的原仓数据可以做智能的数据分析、冷热数据分层,帮助用户更好地降本增效。

刚才也讲了 serverless 是开源大数据3.0中在云原生架构上的进展,未来在 serverless端上会继续推出更多的产品。

更智能的开源大数据

当前 AI 全面爆发,阿里云开源大数据平台也将 AI 技术引入大数据平台体系中,帮助我们做智能化平台运维或者数据管理等。今年,我们升级了智能化运维工具 EMR Doctor、Flink Advisor,并已广泛应用于客户和阿里云内部平台运维,平均集群问题识别时间减少30%,集群资源有效利用率提升75%。

大家知道在 EMR 产品中运维是非常有挑战性的事情,因为 EMR 上有非常多的组件,Hadoop、Hive、Kafka、Spark、Flink、Presto 等,一旦系统出现问题怎么快速地定位问题,是一个非常让用户头疼的事情。甚至有时候即使没有出现问题,用户也希望对整个集群的资源利用率、存储效率进行提升。

之前完全都是靠人肉经验的去沉淀。前些年,我们也投入了很多的工程师帮助客户人肉解决这些问题,但近些年我们都把这些经验和知识沉淀成AI中的知识库、规则库,再结合一些传统机器学习算法和数据分析的方法,进行智能化定位问题,给用户建议,让用户优化集群,解决问题。

在这里插入图片描述

此外。在Flink产品中也做了大量的实践,推出了智能诊断的服务 Flink Advisor。可以在开发运维的全生命周期中帮助用户定位,你的任务为什么出错了,出错在哪里,怎么修正、改进。即使在你的任务没有问题的时候也依然对你的任务做健康检测,判断潜在可能出现的风险,类似于健康分这种能力,帮助用户防范于未然,给用户一些智能化的提议,让用户去优化任务。其实这背后都是采用了大数据AI相结合的分析技术做到的。

在这里插入图片描述

最后提到AI,我觉得有一个词首先进入开发者的视线,就是向量检索。在AI时代,所有非结构化的数据都可以用向量来表示,关于向量检索的技术也如雨后春笋般层出不穷。目前业界各种开源向量检索技术,经过我们评估后认为 Milvus 这个技术是目前最流行的,也是用户需求量最大的向量检索技术,因此开源大数据平台也将推出全托管 serverless 向量检索服务,基于开源的Milvus生态、阿里云的PAI机器学习平台和各种大模型组成完整的大数据AI一体化的技术解决方案去服务在AI场景下对向量检索有需求的客户。

以上就是关于开源大数据平台3.0的核心技术架构以及技术发展趋势的分享。我们希望这些新技术能够在产品中落地,服务客户,得到客户的反馈。谢谢大家的聆听。

这篇关于【云栖2023】王峰:开源大数据平台3.0技术解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384676

相关文章

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下