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

article/2025/7/14 21:50:04

作者:流利说 Ibson(大数据负责人)/ Bruce(数据工程师)

背景介绍

行业

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

业务特征

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

原有架构痛点

  • 弹性资源管理问题:资源配置不够灵活,定时定量弹出,任务提交高峰会出现任务等待,低峰时段资源利用率低。
  • 费用问题: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 场景下的磁盘限制问题。

技术方案设计

  • 架构图

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

典型应用场景

1. 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 提供完善的监控,可显著降低运维成本。

2. 数据集成

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

3. 数据查询

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

迁移后的收益

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

后续期待

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


http://www.hkcw.cn/article/NJQdqDYDvX.shtml

相关文章

Leetcode 340. 至多包含 K 个不同字符的最长子串

1.题目基本信息 1.1.题目描述 给你一个字符串 s 和一个整数 k ,请你找出 至多 包含 k 个 不同 字符的最长子串,并返回该子串的长度。 1.2.题目地址 https://leetcode.cn/problems/longest-substring-with-at-most-k-distinct-characters/description…

历年中南大学计算机保研上机真题

2025中南大学计算机保研上机真题 2024中南大学计算机保研上机真题 2023中南大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 进制转换 题目描述 请写出一段程序,将十进制数字转为八进制。 输入格式 第一行输入 T T T ( 1 ≤ T ≤…

【js逆向】某某省过验证码逆向

查看响应 查看验证码包 send里面就是载荷的密文 向上跟栈 进入到i里面 找到params的加密处 断点,刷新 提示少扣取 报错:st is not defined 全部扣完后发现不报错但是没输出: 一个难以发觉的错误,大量扣取,不容易被发现…

土耳其总统:支持俄乌代表团的谈判继续推进

当地时间5月30日,土耳其总统埃尔多安与乌克兰总统泽连斯基通电话。双方讨论了两国双边关系以及地区与全球局势。△土耳其总统埃尔多安(资料图)埃尔多安在对话中表示,土耳其将继续努力推动乌克兰与俄罗斯之间实现公正与持久的和平。土耳其支持两国代表团在伊斯坦布尔开启的谈…

下一代液晶显示底层技术与九天画芯的技术突围

一、液晶产业:撑起数字经济的显示脊梁 (一)全球显示市场的核心支柱 作为电子信息产业的战略基石,液晶显示(LCD)占据全球平板显示市场超 60% 的份额,2022 年全球市场规模达 782.41 亿元&#xf…

工控机安装lubuntu系统

工控机安装lubuntu系统指南手册 1. 准备 1个8G左右的U盘 下载Rufus: Index of /downloads 下载lubuntu系统镜像: NJU Mirror Downloads – Lubuntu 下载Ventoy工具: Releases ventoy/Ventoy GitHub 下载后,解压&#…

完整解析 Linux Kdump Crash Kernel 工作原理和实操步骤

完整解析 Linux Kdump Crash Kernel 工作原理和实操步骤 一、前言 在使用 Linux 操作系统进行内核开发或者系统维护时,内核 panic 是最常见的系统崩溃环节。如果想要在内核崩溃后立即分析环境和输出内核内存 dump,Kdump crashkernel 是最接近完美的解…

day 25 异常处理

异常处理机制 Python 的异常处理机制赋予程序强大的容错能力。当程序在运行时遇到意外情况(即异常),它不会直接崩溃,而是可以被设计成优雅地处理错误,或继续执行后续逻辑,或按可控方式结束。 在异常发生时…

智能流体仿真软件AICFD 2025R1新版本功能介绍

智能流体仿真软件AICFD是天洑软件自主研发的一款通用型智能热流体仿真工具,其核心代码拥有完全自主知识产权。该软件在业界率先引入人工智能技术,高效解决工业级流动、传热、多相流、噪声及燃烧等复杂仿真问题。 图1 AICFD软件界面 一、版本更新介绍 A…

数据结构之队列:原理与应用

一、基本原理 队列是一种特殊的线性表队列是一个有序表(可以用数组或链表实现)遵循“先来先服务”的原则,它只允许在表的前端(队头)进行删除操作,在表的后端(队尾)进行插入操作 (一) 核心操作 入队&…

windows下安装docker、dify、ollama

一、docker安装 镜像源配置 {"builder": {"gc": {"defaultKeepStorage": "10GB","enabled": true}},"experimental": true,"registry-mirrors": ["https://docker.m.daocloud.io","ht…

mysql隐式转换会造成索引失效的原因

现在我们看一个例子 比如现在我有一张表叫做test 涉及的字段有id code name age address id 是int数值类型 code 是varchar字符串类型 name 是varchar字符串类型 age是int 数值类型 address是varchar 字符串类型 创建语句: CREATE TABLE test ( id INT …

鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程

Rainbond V6 国产化部署教程,针对鲲鹏 CPU 麒麟 V10 的离线环境,手把手教你从环境准备到应用上线,所有依赖包提前打包好,步骤写成傻瓜式操作指南。别说技术团队了,照着文档一步步来,让你领导来都能独立完成…

Python训练营---Day40

知识点回顾: 彩色和灰度图片测试和训练的规范写法:封装在函数中展平操作:除第一个维度batchsize外全部展平dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout 作业:仔细学习下测试和训练代码…

LeetCode 高频 SQL 50 题(基础版)之 【连接】部分 · 下

前五道题&#xff1a;LeetCode 高频 SQL 50 题&#xff08;基础版&#xff09;之 【连接】部分 上 题目&#xff1a;577. 员工奖金 题解&#xff1a; select r.name,b.bonus from Employee r left join Bonus b on r.empIdb.empId where b.bonus <1000 or b.bonus is nul…

C++八股 —— 手撕线程池

文章目录 一、背景二、线程池实现1. 任务队列和工作线程2. 构造和析构函数3. 添加任务函数4. 完整代码 三、阻塞队列实现1. 基础队列2. 升级版队列 四、测试代码五、相关问题六、其他实现方式 来自&#xff1a;华为C一面&#xff1a;手撕线程池_哔哩哔哩_bilibili 华为海思&am…

半导体厂房设计建造流程、方案和技术要点-江苏泊苏系统集成有限公司

半导体厂房设计建造流程、方案和技术要点-江苏泊苏系统集成有限公司 半导体厂房的设计建造是一项高度复杂、专业性极强的系统工程&#xff0c;涉及洁净室、微振动控制、电磁屏蔽、特殊气体/化学品管理等关键技术。 一、设计建造流程&#xff1a; 1.需求定义与可行性分析 &a…

gitLab 切换中文模式

点击【头像】--选择settings 选择【language】,选择中文&#xff0c;点击【保存】即可。

Redis 常用数据结构详解与实战应用

在当今互联网高速发展的时代&#xff0c;数据的存储和处理效率至关重要。Redis 作为一款高性能的内存数据库&#xff0c;凭借其丰富的数据结构和出色的性能&#xff0c;成为了众多开发者的首选。本文将深入探讨 Redis 常用的数据结构&#xff0c;并结合实际应用场景&#xff0c…

leetcode2221. 数组的三角和-medium

1 题目&#xff1a;数组的三角和 官方标定难度&#xff1a;中 给你一个下标从 0 开始的整数数组 nums &#xff0c;其中 nums[i] 是 0 到 9 之间&#xff08;两者都包含&#xff09;的一个数字。 nums 的 三角和 是执行以下操作以后最后剩下元素的值&#xff1a; nums 初始…