作者:玄橙 - 阿里云 EMR Serverless Spark 产品专家
EMR Serverless Spark 是一款面向 Data+AI 的高性能 Lakehouse 产品。它为企业提供了一站式的数据平台服务,包括任务开发、调试、调度和运维等,极大地简化了数据处理和模型训练的全流程。同时,它100%兼容开源 Spark 生态,能够无缝集成到客户现有的数据平台。使用 EMR Serverless Spark,企业可以更专注于数据处理分析和模型训练调优,提高工作效率。今天我将从业务痛点、产品定位、产品介绍以及客户案例四个部分详细介绍一下 EMR Serverless Spark 这款产品。
业务痛点
在服务了多家企业后,我们总结了共享集群的一些关键痛点。当业务部门同时提交报表生成、BI查询和模型训练任务时,原有的 YARN 集群将面临多重挑战。首先,资源争抢会导致关键任务的延迟,业务方会抱怨数据产出不及时,而在波谷时段又会出现大量资源闲置,但我们仍需为这些闲置资源付费。这种共享集群环境较为脆弱,一旦某个任务失控,可能会导致整个平台瘫痪。其次,这样的集群不利于成本分摊,数据平台难以精确统计各个业务方的资源使用量和成本数据。此外,如果想利用 Spark 的最新特性,通常需要进行停机迁移,但这在我们的业务窗口内是不可接受的。对于这种难以维护且升级的集群,随着长期累积的补丁,后期几乎没有人敢对其进行改动。因此,我们认为数据平台需要一个高效率、低成本、易于管理和持续迭代的 Spark 服务。

产品定位
当前,传统数据架构的局限性日益显著,行业正加速向更高效、更灵活的现代化架构升级。
传统数据仓库具备结构化数据处理和开箱即用的优势,但其存储成本高、数据开放性不足、灵活性有限,限制了企业的扩展能力。尤其在多场景混合负载(如离线分析、实时计算)环境下,频繁的数据迁移与ETL流程进一步增加了系统复杂度和运维负担。
与此同时,随着非结构化数据的快速增长,基于对象存储的数据湖架构凭借其低成本、高扩展性和开放格式等优势得到广泛应用。然而,数据湖在事务一致性、查询性能等方面仍存在不足,难以完全替代数据仓库的核心能力。
为平衡性能与灵活性,企业通常采用"湖仓分治"的混合架构------将高价值、稳定型业务部署于数据仓库,而将探索性、高灵活性的业务运行在数据湖中。但这种模式带来了数据冗余、一致性维护等挑战,增加了系统的复杂性和管理成本。
在 AI 应用普及的新时代背景下,可以预见未来几年内,应用领域的变化将会异常迅速。继续沿用旧模式已不再可行,因为这会导致极高的成本支出和难以应对的业务复杂度。因此,融合数据湖与数据仓库优点的数据湖仓架构成为了发展的必然趋势。该架构在数据湖的基础上进行了优化,同时具备了数据仓库的能力。
为此,阿里云推出了 EMR Serverless Spark,提供了一个全面整合数据湖仓的解决方案,在保持数据湖开放性的同时,赋予其数仓的强大性能,助力企业构建面向未来的数据基础设施。

EMR Serverless Spark 在多个关键场景中提供了支持。首先,针对数据仓库,即结构化数据处理场景,EMR Serverless Spark 提供了一种高度优化的 Spark 引擎作为分布式处理引擎,以替代传统 Hive,从而实现高性能数仓。这一方案不仅涵盖了 ETL 和 ELT,还支持实时流计算。此外,相较于Trino,我们的 Fusion 引擎在进行交互式查询时能够提供更高的性价比。其次,在传统机器学习领域,Spark 作为一个成熟的分布式机器学习框架,被广泛应用于数据清洗、特征工程、模型训练、批量推理、数据科学等场景。最后,在大模型文本处理场景,针对非结构化数据处理,PySpark 作为一个成熟的分布式 Python 框架,展现了其独特的优势。无论是多模态文本、图像还是视频数据,PySpark 都能够提供高并发、高吞吐量且灵活的处理能力。

产品介绍
产品架构
EMR Serverless Spark 是一款专为现代数据处理场景设计的全托管服务,其核心优势在于极致的弹性、高性能和开放生态,覆盖了从数据仓库、BI 分析到 AI 科学的全场景需求。下图展示了它的四层架构。
首先第一层架构是全场景的覆盖,致力于满足多样化的数据需求。首先是数仓和 BI 分析,通过 SQL Editor 提供低门槛的数据查询和报表开发,兼容传统数仓场景。对于AI与数据科学,我们集成了 Notebook,支持 Python 环境管理和交互式机器学习开发。这一层的设计理念是实现一个平台,多个场景的融合,用户无需切换工具即可完成从数据分析到模型训练的全过程。
第二层是平台功能,主要是为上层场景提供支撑,通过工作流编排实现批处理、流计算以及AI作业多场景的混合调度。无论是 ETL 任务、实时分析还是机器学习训练,均可在一个 pipeline 中完成编排,从而避免多系统割裂的问题。同时所有操作均可通过 RAM 认证和鉴权,细粒度地控制对资源、数据及功能的访问权限,确保企业级安全。此外, SQL Editor 和 Notebook 分别优化了数据仓库和 AI 开发体验,同时 Notebook、kyuubi 以及 livy 服务为开发者提供了灵活的编程接口和任务提交服务。
由于灵活的调度需求对底层引擎性能和弹性提出了更高要求,因此第三层为核心引擎层,它由两大技术组成。首先是 Fusion 引擎,针对 CPU 密集型场景,提供基于 C++ 的向量化 SQL 引擎。相较于JVM,Fusion 引擎能更充分利用 SIMD 指令集,在提高 CPU 利用率的同时降低内存开销。在 TPC-DS 基准测试中,相对于开源版本,Fusion 引擎实现了300%的性能提升。针对 IO 密集型场景,我们提供了企业级的 Celeborn 服务。Celeborn 是由阿里云 EMR 团队主导并捐献给 Apache 社区的Remote Shuffle Service。在开源基础上,企业级 Celeborn 支持多租户和资源隔离,并提供资源弹性实现 IO 密集型业务的加速。在弹性伸缩能力的支持下,这两项技术能够动态适配资源需求,最低支持单核级别的扩缩容,实现资源零浪费。
第四层是湖仓存储层,这是 EMR Serverless Spark 实现湖仓一体愿景的核心,基于开放数据湖格式Paimon 和 Iceberg,在保留数据湖灵活性的同时,赋予了传统数仓的关键能力,如 ACID 事务、高效的数据 Upsert 以及完整的血缘记录等。
通过这四层架构,EMR Serverless Spark 实现了以全场景覆盖为切入点,以平台能力为支撑,基于高性能引擎,最终为用户提供了一个完整的 Lakehouse 解决方案。

在性能引擎方面,前面提到我们采用了 C++ 向量化技术重写了 SQL 引擎。尽管开源领域也存在类似的解决方案,但通过下图右侧的对比表格可以清晰地看出,EMR Serverless Spark 在各个关键指标上均显著优于开源方案。具体而言,我们的算子、表达式和 TimeStamp 时区覆盖度都更广泛,并且在湖仓存储方面深度集成了阿里云 OSS 和湖表格式 Paimon。此外,我们在 Cache Table、Join、Spill 等方面也进行了不同程度的优化。

下图清晰展示了我们的自研 Fusion 引擎在10TB规模 TPC-DS 基准测试中的表现。与开源 Spark 相比,EMR Serverless Spark 实现了平均5倍的性能提升。从图上可以直观地看到,每条查询的耗时显著降低,部分查询的性能优势尤为明显。这意味着,在相同的计算任务下,EMR Serverless Spark 的耗时仅为开源 Spark 的20%。这不仅带来了更快的数据处理速度和业务洞察力,还大幅降低了计算成本。无论是实时数仓还是交互式分析场景,Fusion 引擎都能为用户提供极致的性能体验。

展开介绍一下 Fusion 引擎与 Apache Paimon 的深度集成。Paimon 是由阿里云孵化并且大力推广的数据湖存储,在阿里云公有云和国内多家公司广泛部署并生产落地,助力客户实现了 Lakehouse架构的升级。Fusion 引擎在性能、功能以及生态等多个维度,都对 Paimon 进行了深度的集成和优化。
首先在性能方面,Fusion 引擎支持 Paimon 向量化读写,避免了 JVM 和 Native 环境之间数据行列转换的开销,显著提升了读写性能。具体而言,读取性能提高了70%,写入性能提高了30%。此外,Paimon 引入了 Deletion Vector 模式,通过 DV 文件标记删除和更新的数据,平衡了不同表类型之间的读写性能。Fusion 引擎同样支持 Paimon DV 表的查询,极大地提升了 Paimon MOR 表的查询效率。Paimon 也深度集成了 EMR Serverless Spark 多项查询优化,包括列裁剪,CTE 以及广播重用等。相较于社区版本还额外支持了 Spark data Source V2 语法,提高了易用性。
在生态方面 Paimon 与阿里云数据湖构建 DLF 元数据服务和对象存储 OSS 实现了更好的适配。例如,DLF 2.5全面支持全托管 Paimon,实现了自动化的湖表管理。针对数据在 OSS 的场景,结合JindoFS 访问 Paimon,提供了更优的访问性能。值得一提的是,Paimon 社区的 Spark 生态建设由阿里云 EMR Serverless Spark 团队主导,所以会确保最新的特性和问题修复能够及时体现在产品中。
去年,EMR Serverless Spark 进行了一项技术挑战,使用 EMR Serverless Spark 产品结合 Paimon 打榜 100TB TPC-DS 基准测试,结果显示,在关键指标上较当前榜首有一倍性能提升。

接着分享下 EMR Serverless Spark For AI 场景。一个典型的 AI 工作流,主要包括数据预处理,特征工程、模型训练和推理四个环节。EMR Serverless Spark 在这些环节都提供了支持,特别对 Python 生态有较好的兼容性。
在数据预处理阶段,EMR Serverless Spark 允许数据科学家继续使用他们熟悉的 Pandas 库进行数据清洗和探索,同时能够直接调用 NumPy 实现高效的数值计算。所有 Python 代码都能自动获得分布式执行的能力,无需重写。此外,EMR Serverless Spark 支持 Notebook 交互式开发,保留用户原有的工作习惯。对于多模态数据类型(如文本、图像和视频),EMR Serverless Spark 提供了相应的第三方库来处理这些非结构化数据,并针对大模型场景也提供了高性能的文本分词和去重能力。
在机器学习训练方面,EMR Serverless Spark 内置了原生的分布式 MLlib 算法库,覆盖了分类、回归、聚类等常见任务。同时还深度集成了 XGboost、LightGBM 等主流框架,并保持了与 Scikit-learn 生态的兼容性。对于需要精细调优的场景,平台整合了 Optuna 等自动化工具,帮助开发者高效优化模型参数。
针对深度学习训练,EMR Serverless Spark 提供了灵活的训练方案,支持使用 PyTorch、TensorFlow 和 Keras 等单机训练框架。也支持通过 TorchDistributor 等分布式接口实现多机训练。特别是在分布式训练场景下,平台提供了高并发、高稳定的运行环境,确保长时间训练任务的可靠性。
在模型推理阶段,EMR Serverless Spark 支持分布式推理和批量推理,能够高效处理海量数据的预测需求。针对当前大模型的应用趋势,平台提供了批量调用大模型 API 的能力,方便开发者集成最新的 AI 服务。这些能力建立在 Spark 成熟的分布式架构之上,既保留了原有生态系统的使用习惯,又提供了企业级的生产力支撑。

LLM 数据预处理首选 Spark 已经成为业界主流方案。EMR Serverless Spark for AI 的一大优势在于,其提供了灵活的 Python 环境管理,支持作业力粒度的镜像运行和环境依赖,用户可以以声明式的方式定义 Python 环境及其依赖项。

EMR Serverless Spark 平台的核心能力在于其极致的资源弹性,这也是区别于传统大数据平台的关键优势,主要体现在以下几个维度。首先,在弹性粒度方面,我们实现了进程级别的弹性伸缩,能够精细控制每一个 Driver 和 Executor 的进程。资源分配的最小粒度可以达到一核,从而实现真正的按需使用。其次,在弹性时效方面,容器拉起时间控制在20秒以内,远快于行业平均水平。此外,我们采用了智能回收策略,Executor 在空闲60秒后会立即释放。结合神龙资源池的强大供应能力,我们能够轻松应对业务高峰期的需求波动。
在资源管理体系方面,我们提供了工作空间和队列两层 Quota 管理,并且在作业配置层面,支持作业粒度的最大和最小资源管理,确保资源使用粒度。此外,我们还构建了一套全面的资源观测系统,提供 Workspace、队列以及作业三层监控视图,支持天/时/分等多周期的资源使用量分析。用户能够根据业务/项目统计资源消耗,实现精细化的成本核算,为资源优化提供数据支撑。
下图展示了一个实际的客户用量案例。左上角展示了过去12小时内每小时累积消耗的CU时,使用户能够直观地了解整体资源趋势。右侧则是一个堆叠柱状图,每种颜色代表一个业务队列的资源消耗占比。这种设计特别适用于多业务场景,每个业务方可以拥有独立的队列,系统自动统计各个队列每小时的资源用量,实现精准的成本分摊。第二行展示了分钟级的弹性伸缩趋势。可以看到,在业务高峰期,资源用量迅速攀升至6000核,而在午间低谷期,则自动缩减至零核。这种极致的弹性能力不仅满足了业务需求,还实现了100%的资源利用率,真正做到按需付费,避免资源浪费。最后,任务级别的成本明细展示了每个任务消耗的 CU 时、MB-seconds 和 vcores-seconds。通过将 CU 时乘以当地单价,可以快速预估作业成本。最终账单是基于所有任务的总用量折算成 CU 生成的,因此实际账单费用通常低于各任务成本的简单累加。

接下来看一下 EMR Serverless Spark 在企业级高可用能力。作为一款成熟的云原生服务,我们提供了跨可用区的高可用保障,这是平台可靠性的核心体现。首先,我们的关键能力之一是 Region 级别的服务部署。管控层面支持多 AZ 的部署架构,所有组件默认采用跨机房部署,从而实现真正的Region 级别服务能力。其次就是智能故障转移。当某个可用区出现故障时,系统会自动将任务无感调度至健康的 AZ 中。这一过程对用户完全透明,确保业务连续性不受影响。第三点就是高可用保障,我们提供高达99.9%的 SLA 服务等级协议,涵盖管控面和数据面的双重保障。对于用户而言,这不仅保证了业务的永续性,即使单个可用区出现故障也不会影响整体服务,而且在按需付费模式下,用户无需为高可用性支付额外费用,从而实现了成本优化。此外,自动化故障转移机制大大简化了运维工作。
EMR Serverless Spark 提供了一站式的数据开发体验,涵盖了从开发到生产的整个生命周期。平台支持 SQL、PYTHON、JAR 等多种任务类型,开发者可以便捷地进行调试,并一键发布到生产环境。内置的版本管理功能完整记录每一次发布历史,支持源码和配置差异对比,确保每一次变更均可追溯。在生产环境中,内置的工作流引擎支持周期性调度和流式调度,轻松构建数据 pipeline。同时,平台提供 SQL Editor 和 Notebook 两种交互式分析界面,特别针对数据科学和机器学习场景进行了优化。
在业务层面,平台提供了多层次的资源管理和监控能力。基于队列的 Quota 管理实现了资源隔离,分钟级的用量统计支持精准的成本分摊。原生集成 Spark UI,提供了从进程到作业的完整监控指标,还可以自动生成诊断报告,显著提升了运维效率。

我们来看一下统一湖仓的一个应用。EMR Serverless Spark 创新性地实现了湖仓一体的应用体验,通过统一的数据目录,用户可以在 SQL Editor 或者 Notebook 中无缝地去访问两种数据源,包括数据仓库 MaxCompute 和 数据湖 OSS 或 OSS-HDFS。OSS 或 OSS-HDFS 可以管理非结构化数据,服务 AI 和数据科学体验,数据仓库一般则用于存储结构化数据,支撑传统的 ETL 和 BI 分析。这种架构带来的核心价值是开发的统一性,BI 工程师和数据科学家可以在 EMR Serverless Spark 当中协同工作,SQL 查询和 Python 代码可以共享同一份数据。第二点就是调度一体化,通过统一的工作流引擎,可以实现 ETL 任务与机器学习模型训练等复杂操作的混合编排。最后是数据一致性,基于统一的 Catalog,实现了元数据层面的集中管理,确保了数据版本控制及权限设置的一致性。
EMR Serverless Spark 的核心设计理念之一是100%兼容开源 Spark 生态,确保用户能够无缝迁移现有业务,无需重构代码或改造流程。我们从四个关键维度实现了这一目标。首先,在任务提交方式上,EMR Serverless Spark 完整保留了开源 Spark 的任务入口,支持多种提交方式以适应不同的开发习惯。这包括传统的命令行工具如 spark-submit 和 spark-sql,满足大数据开发者熟悉的操作体验。此外,还提供了 JDBC 和 RESTful API 接口,通过 Kyuubi 和 Livy 等服务,支持 BI 工具和自定义应用的调用。在交互式开发方面,EMR Serverless Spark 集成了 Notebook 环境,使数据科学家可以直接使用 Python 或 SQL 进行开发。对于流行的 ELT 工具(如 DBT),我们提供了Adapt 直接对接 Spark 引擎,从而支持脚本化调度、交互式分析以及与其他平台的集成,为用户提供熟悉的开发入口。
其次,为了满足企业级任务调度和编排需求,EMR Serverless Spark 深度集成了主流的调度系统。除了通过 API 调用外,我们还为 Airflow 和 DolphinScheduler 开发了官方 Operator。
第三,在企业级安全和元数据管理方面,EMR Serverless Spark 提供了全面的支持。在认证层面,支持与外部 LDAP 和 Kerberos 系统的对接;在鉴权层面,支持对接外部 Ranger 系统,确保迁移后权限的一致性。元数据管理方面,不仅原生支持阿里云 DLF 统一元数据系统,还可以对接自建的 Hive Metastore Service,确保数据访问的一致性。
最后,EMR Serverless Spark 还深度集成了 Paimon,并支持 Iceberg、DeltaLake 和 Hudi 等多种数据湖格式。同时,通过相应的 Operator,EMR Serverless Spark 能够连接多种外部数据源,如StarRocks、Doris、HBase、MongoDB、MaxCompute、PostgreSQL 和 MySQL 等。

EMR Serverless Spark 提供了两种计费模式:按需付费和预付费(包年包月)。对于短期或临时项目、资源波动较大或按需扩展的业务场景,我们建议采用按量付费模式。而对于那些工作负载相对稳定且长期运行的任务,例如持续运行的Spark Streaming作业或Livy服务,以及预算明确的客户,我们则推荐使用包年包月模式。此外,在按量付费模式下,我们还推出了资源抵扣包,其功能类似于移动通信中的流量包。用户可以购买抵扣包用于抵扣按量资源产生的费用。目前提供最高8折的优惠,更多关于资源抵扣包规格选择的信息,可参阅EMR Serverless Spark官方文档以获取详细指导。
资源抵扣包_开源大数据平台 E-MapReduce(EMR)-阿里云帮助中心
客户案例
最后介绍几个客户案例。
首先,我们来看一下微财的案例。微财是一家金融公司,其主要应用场景是风控。客户训练任务在本地进行,面临单机训练性能严重不够,数据量最多只能处理 400万行的挑战,需要有一个平台能够支持千万级甚至更大数据量的训练规模。在迁移到 EMR Serverless Spark 后,使用默认参数进行分布式训练。当训练集规模扩展到5000万行时,训练耗时仅在20分钟左右。这一显著的性能提升得到了客户的高度认可。客户对产品的评价如下:EMR Serverless Spark 让我们有了单独的资源池进行模型训练,避免了资源冲突,同时还解决了我们在存算分离架构下需要处理 Shuffle 稳定性和性能问题的困扰。
第二个客户是美的暖通,美的暖通选择基于 EMR Serverless Spark 构建 Lakehouse 湖仓平台。此前,他们面临的主要挑战包括现有平台资源弹性能力不足、Spark 平台生态不够完善,以及数据和 AI 的 Workload 没有办法在一个平台当中统一等。迁移至 EMR Serverless Spark 后,客户显著提升了其资源调度的灵活性与响应速度。此外,在多种计算场景下,整体性能得到了超过50%的提升。成本方面,相较于之前的大数据架构,综合成本降低了30%。更重要的是,通过采用 EMR Serverless Spark,统一了数据和 AI 的 Workload,基于 EMR Serverless Spark 同时实现数据的处理、数据科学,以及 AI 相关应用。
第三个客户是流利说,流利说从 EMR on ECS 迁移至 EMR Serverless Spark。此前,客户面临的主要挑战包括资源供给不足、原生版本升级复杂、多台提交机导致了显著的成本支出和资源浪费。鉴于这些痛点,流利说决定采用 EMR Serverless Spark。迁移后,客户实现了显著的成本优化,计算成本较之前降低了约30%。更重要的是,核心报表的生成时间比原有架构提前了1小时,整体数仓的任务执行时间也降低了40%。
第四个客户是鹰角网络。鹰角网络在《明日方舟》的游戏业务中采用了 EMR Serverless Spark。原先的架构存在一些明显的不足,主要包括缺乏外部 Catalog 以支持多引擎查询,以及与主流调度系统如 DolphinScheduler 的集成化支持不足。此外,原有架构在引擎性能方面表现不佳,社区兼容性较低且稳定性欠佳,尤其是不支持 Remote Shuffle Service,导致作业频繁出现稳定性问题。迁移到 EMR Serverless Spark后,系统的稳定性显著提升。特别是在核心 SLA 链路上,整体数据产出时间缩短了1.5小时,大幅增强了 SLA 保障能力。此外,EMR Serverless Spark 支持版本快速升级,确保用户始终能够享受到最稳定的运行体验。在迁移到 EMR Serverless Spark + DolphinScheduler 架构后,通过利用 Spark SQL 会话功能,开发团队能够更高效地验证和部署 DS 生产调度模式。这一改进显著提升了研发效率,并多次成功保障了关键活动节点的数据产出。
以上我从业务痛点、产品定位、产品介绍以及客户案例四个部分详细介绍了EMR Serverless Spark 这款产品。欢迎大家登录阿里云 EMR 管控台体验 Serverless Spark。