Fusion 引擎赋能:流利说如何用阿里云 Serverless Spark 实现数仓计算加速

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
函数计算FC,每月15万CU 3个月
简介: 本文介绍了流利说与阿里云合作,利用EMR Serverless Spark优化数据处理的全过程。流利说是科技驱动的教育公司,通过AI技术提升用户英语水平。原有架构存在资源管理、成本和性能等痛点,采用EMR Serverless Spark后,实现弹性资源管理、按需计费及性能优化。方案涵盖数据采集、存储、计算到查询的完整能力,支持多种接入方式与高效调度。迁移后任务耗时减少40%,失败率降低80%,成本下降30%。未来将深化合作,探索更多行业解决方案。

一.背景介绍


1.行业


流利说是领先的科技驱动的教育公司,公司自主研发了领先的英语口语评测、写作打分引擎和深度自适应学习系统,致力于为用户提供一整套系统性的英语学习解决方案,从听、说、读、写多个维度提升用户的英语水平。


2.业务特征


  • AI 打分:利用大数据和人工智能算法对用户英语口语评测、写作打分。
  • 个性化推荐:根据用户学习目标及评级,自动推荐专项和强化课程内容。
  • 数据驱动:通过分析用户画像和学习效果,优化推荐策略,提升用户满意度。
  • 数据运营:基于大数据及用户特征,提高运行效率,提升用户黏度及用户满意度


3.原有架构痛点


  • 弹性资源管理问题:资源配置不够灵活,定时定量弹出,任务提交高峰会出现任务等待,低峰时段资源利用率低。
  • 费用问题:Master 和 Core 节点为常驻节点,空闲时仍会产生费用,导致成本增加。
  • 性能问题:当前架构缺乏类似于 Fusion 的加速技术,部分任务执行速度较慢,尤其是在处理大规模数据时。
  • 运维问题:多组件架构使得故障排查和恢复变得复杂,增加了运维的工作负担。
  • 监控问题:仅包含集群层面及组件的监控,缺乏对 Spark 任务状态及资源监控。
  • 扩容问题:临时需求需手动扩容,扩容响应较慢。


为了应对新的业务挑战,流利说选择与阿里云合作,利用其 EMR Serverless Spark,构建了符合业务场景和分析师习惯的工程解决方案。


二.为什么选择阿里云 Serverless Spark

EMR Serverless Spark 是一款面向 Data+AI 的高性能 Lakehouse 产品。它为企业提供了一站式的数据平台服务,包括任务开发、调试、调度和运维等,极大地简化了数据处理和模型训练的全流程。同时,它100%兼容开源 Spark 生态,能够无缝集成到客户现有的数据平台。使用 EMR Serverless Spark,企业可以更专注于数据处理分析和模型训练调优,提高工作效率。


  • 元数据管理:支持对接外部 Hive MetaStore 元数据服务。
  • 调度引擎支持:提供了市场主流调度引擎集成,例如 Airflow 和 DolphinScheduler 等。
  • 完善的周边服务:提供全面的监控和告警功能,能够实时跟踪任务状态和性能,及时发现并解决问题。
  • 托管弹性伸缩功能:自动调整资源,减少手动干预。
  • 集群稳定性:由云服务商管理,提供高稳定性和可靠性。
  • 弹性资源管理:按需进行分配资源,避免资源浪费。
  • 按需计费:仅为实际使用的资源付费,降低成本。
  • 快速启动:无需预配置资源,能够快速启动和运行任务。
  • 自动扩展:根据工作负载自动调整资源,提升灵活性。
  • 性能优化:Serverless Spark 通过技术如 Fusion 加速任务执行,提高效率,降低成本。
  • Shuffle 性能:内置 Celeborn 服务,解决了大 Shuffle 场景下的磁盘限制问题。


三.技术方案设计


640 - 2025-06-18T163029.162.png


流利说数据平台涵盖从数据采集、接入、存储、计算到管理、查询与可视化的完整能力。支持多种源数据接入,提供毫秒级实时处理、分钟级近实时流处理及 T+1 离线批处理能力,能满足多样化业务需求。离线 ETL 脚本存储于 GitLab,依赖于 GitLab 的分支管理、版本管理和 review 机制,实现可追溯、可协作的脚本管理;平台以 Airflow 作为调度系统,实现高效、可靠且可视化的工作流调度;以 EMR Serverless Spark 做为核心计算引擎,结合 Fusion 引擎加速,实现高效、弹性、可靠且低成本的数据处理。以 Hive Metastore 作为元数据管理,提供统一的数据目录服务,实现元数据的集中存储与管理,支持多引擎数据共享和跨平台数据访问,简化数据治理流程。数据存储阿里云 OSS ,提供高可靠、低成本的对象存储。平台配合 AirEye 监控及 GoAlert 告警,构建完整的可观测性系统,实现对关键指标的实时监控与异常检测,提高系统可靠性和运维效率。


四.典型应用场景


CI&CD 与离线 ETL 计算


流利说数据团队自研了 DAG 自动生成服务,数据分析师和数仓工程师提交数据转换脚本到代码仓库后会,自动集成 CI 进行脚本校验,完成 review 并 Merged 后会触发自研 DAG Service 生成 Airflow 可以直接调度的 Dag 文件。Airflow 基于阿里云提供的 Operator 完成与 EMR Serverless Spark 的插件式集成,可直接提交任务到 EMR Serverless Spark,并监控任务状态。相比于之前 Airflow + EMR Gateway 的方式去提交任务,结合 EMR Serverless Spark 的高效弹性及 Fusion 引擎优化,显著提升了任务的执行效率、并发度、稳定性和可靠性。另外 EMR Serverless Spark  提供完善的监控,可显著降低运维成本。


数据集成


流利说数据平台支持多种数据源数据接入,对业务数据库接入支持每天全量接入和增量接入。对业务数据库的增量接入引人数据湖 Hudi,用于支持数据更新、删除操作及 Schema 演进管理。增量接入通过 CDC 技术实时监控业务库日志,将变更事件推送到 Kafka,通过周期调度 EMR Serverless Spark 任务完成增量数据入湖。该场景同样是在 Airflow 中调度提交任务到 EMR Serverless Spark,由于增量数据可能会有周期性变化,借助于 Serverless 的弹性伸缩能力,可显著提高资源利用率,避免资源浪费,相比于之前半托管集群的定时弹性伸缩更加稳定和流畅。


数据查询


640 - 2025-06-18T163358.653.png


流利说查询平台提供的 Trino 、Doris 和 Spark 三种查询引擎,用户可以根据使用场景来选择合适的引擎来进行数据查询、分析及 ETL 脚本验证等。 查询平台 Spark 引擎切换到 EMR Serverless Spark 之前是基于 Spark 的 Thrift Server 构建的,服务稳定性差且无法进行细粒度的资源隔离,运维成本高;切换到 EMR Serverless Spark 后,可通过 Web 管理界面可以管理和运维 Thrift Server 会话,可显著降低运维成本。另外,查询平台实现用户级别的路由,可实现不同用户提交到不同  ThriftServer,避免了资源抢占。 另外,基于 EMR Serverless Spark 的弹性伸缩能力,减少了计算资源闲置,显著降低成本。


五.迁移后的收益

  • 性能:离线任务开启 Fusion 耗时减少 40%,核心报表更早产出。
  • 稳定性:任务稳定性显著提高,失败率降低 80%。
  • 资源灵活:根据业务需求自动调整扩充计算资源。
  • 运维成本:减少不必要的大数据组件,精简系统架构,降低平台运维成本。
  • 性价比:真正的按量付费,不使用时没有资源消耗,成本降低 30%。


六.后续期待

基于阿里云 EMR Serverless Spark 技术栈快速构建了离线数据计算平台,EMR Serverless Spark 全托管免运维、自研 Fusion 引擎,内置高性能向量化计算和  RSS 能力,相比开源版本3倍以上的性能优势以及计算/存储分离的架构,为我们节省了总体成本。同时,EMR Serverless Spark 自身提供的丰富特性,也极大提升了我们数据团队的生产力,为数据分析业务的快速开展交付奠定了基础。未来,流利说希望与阿里云 EMR 团队针对湖仓场景输出更多行业先进解决方案。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
31852 78
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17655 18
|
人工智能 负载均衡 网络性能优化
灵骏可预期网络:Built for AI Infrastructure
通用人工智能离我们越来越近,全世界的关注和投入正在带来日新“周”异的变化。回顾人工智能的诞生和发展历程,人类计算能力的进步几乎牵动了每一次的重大技术突破,当前的大模型热潮更是如此,只是动辄千万亿参数级的模型体量,所需计算资源远超单颗芯片的上限,超大规模的计算集群成为支撑技术发展和应用创新的关键基础设施。面向智能:云基础设施网络技术面临新挑战如何突破单个芯片、单个服务器节点的算力上限,在超大规模情况
31193 10
灵骏可预期网络:Built for AI Infrastructure
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36193 19
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24468 14
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36515 15
重生之---我测阿里云U1实例(通用算力型)
为笔记本更换固态硬盘的方法
本文介绍为笔记本电脑拆机、更换固态硬盘的具体方法~
18010 41
为笔记本更换固态硬盘的方法
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29747 52