一、背景介紹
七貓公司介紹及業務規模
- 七貓是一家深耕文化娛樂行業的互聯網企業,總部坐落在上海市前灘中心。七貓旗下原創文學網站七貓中文網於2017年5月正式上線,專注為原創作者提供創作指導、版權運營等全方位一體化服務。七貓拳頭產品七貓免費小説 App 於2018年8月正式上線,專注為用户提供正版、免費、優質的網絡文學內容閲讀服務。現平台用户超 6 億,規模位列數字閲讀行業前列。
原有大數據架構
- 七貓的數倉團隊主要是承接七貓各條業務線的離線數據開發、實時數據開發、指標建設、數據治理等工作。
架構痛點分析(多業務線帶來複雜分析需求/計算性能瓶頸/開發運維門檻高成本大.......)
1、需求複雜,同時支持數倉工程師,數據分析師,算法工程師等多崗位計算需求
2、計算成本高
- 傳統數倉任務在半托管集羣下只支持開源 Spark,無法充分利用業界領先的 Native 加速和Remote Shuffle Service 技術提升整體性能進而降本
- 半托管集羣和 adhoc 集羣缺乏靈活的彈性能力,存在較大的資源浪費
3、 運維複雜 - 半托管集羣在資源層需要一定人力介入運維
- Spark 引擎升級,Python 環境管理等常見運維操作複雜且有較大生產風險
- 無法精確評估各條業務線乃至單作業成本,進而進行針對性優化
二、為什麼選擇阿里雲 EMR Serverless Spark
(一)Fusion + Celeborn 賦能,批處理性能全面提升超 50%
在大數據計算場景中,任務性能一直是關注的核心指標。為進一步提升計算效率,Serverless Spark 推出了 Fusion 加速能力,通過向量化SQL加速技術,顯著縮短作業執行時間。同時,Serverless Spark 內置了企業級 Celeborn,大幅提升大 Shuffle 作業的穩定性和性能。為驗證實際效果,我們選取了三個典型的批處理任務,對比傳統 Yarn 環境和 Serverless Spark 的執行效率。
用户行為增量分析任務
- 資源配置: 500C,1500G
- Yarn:32 分鐘
- Serverless Spark:10 分鐘,提速 69%
Celeborn 有效減少了寬依賴階段的任務調度與 Shuffle 開銷,使整個計算鏈路更加高效。
用户日誌明細處理任務
- 資源配置:500C,1200G
- Yarn:30 分鐘
- Serverless Spark:14 分鐘,提速 53%
在典型的日誌清洗與聚合任務中,Fusion 加速顯著提升了寬表 Join 與聚合計算的執行效率。
內容聚合與統計任務
- 資源配置:800C,1200G
- Yarn:71 分鐘
- Serverless Spark:38 分鐘,提速 46%
面對高達 11TB 的 Shuffle 數據量,Serverless Spark 依然保持穩定的執行性能,有效降低任務時延。
整體來看,Serverless Spark 對計算密集型和IO密集型任務都有大幅優化,三個任務平均提速超過 56%,在複雜 ETL 與大規模數據處理場景中展現出顯著優勢。相比傳統 Yarn 集羣,Serverless Spark 不僅具備更強的彈性能力和更低的資源使用成本,通過 Fusion + Celeborn 的優化,更是實現了計算效率與資源性價比的雙重提升。
(二)Serverless 模式突破算力瓶頸,實現彈性敏捷的數據處理
📌 問題:傳統架構難以應對算力潮汐與資源剛性約束
隨着七貓數據作業規模持續增長,大數據集羣長期處於高負載運行狀態。原有架構存在一些問題:如缺乏靈活的彈性能力,而在白天又存在資源浪費。 傳統模式已無法支撐“按需響應、準時交付”的現代數據服務要求,並且原先基於實例級別的資源交付方式,在潮汐時存在浪費。
✅ 解決方案:引入 Serverless 彈性算力,構建智能調度新範式
七貓全面擁抱雲原生理念,採用 Serverless 模式重構計算層,實現面向業務負載的動態資源供給。核心舉措包括:
引入 Serverless Spark ,基於 OSS-HDFS 統一存儲層實現計算與存儲徹底解耦,支持計算資源秒級彈性伸縮;
利用 Serverless Spark 海量資源池與容器化調度能力,實現 最小粒度 1 核 的精細化資源計量,按實際使用量計費,徹底告別資源預佔;
基於 Dataworks 提供的友好的用户交互界面,可以提交管理 Streaming/SQL/PySpark 等多類作業。
高峯期算力爆發能力大幅提升,分鐘內即可彈出數千核 vCore 資源,滿足瞬時高併發處理需求。該模式實現了從“資源驅動調度”向“業務需求驅動執行”的根本轉變。
三、技術方案設計
應用層
- 基於阿里雲 DataWorks 和自建 Apache DolphinScheduler 進行數倉開發。
- 基於 Jetbrains IDE 產品和自建 Apache Superset 進行報表分析和 adhoc 查詢。
接入層
- 通過接入 EMR Serverless Spark 官方提供的 spark-submit 工具進行數倉調度,該工具100%兼容開源 spark-submit 工具,為數倉的整體遷移提供了巨大的便利。
- 通過接入 EMR Serverless Spark 的 Kyuubi Gateway 進行日常數據分析和即席查詢。Kyuubi Gateway 同樣也提供了100%兼容開源的 restful 和 jdbc 接口,另外在開源基礎上增強了雲原生部署環境下的穩定性和提交併發性能。
管控面
- 用户無感的全鏈路多 AZ 高可用,提供穩定安全7 * 24小時的 PAAS 服務。
- 通過資源隊列管理能力隔離不同業務團隊的資源使用,業務峯谷時期能夠快速進行資源上限調整。
- 通過作業級別管理能力進行日常的作業運維和調優,資源使用情況可細化到作業維度,易於進行針對性成本優化。
計算面
- 引擎能力
-
- 數倉 SQL 作業默認開啓 fusion 加速提升 SQL 執行性能
-
- 默認使用內置 Celeborn 服務進行 Shuffle,提升大 Shuffle 穩定性
- 極致彈性
-
- 兼容開源 Spark 資源配置支持最短彈性步長為1CU的彈性能力
-
- 依賴資源底座服務保障資源供給
四、遷移後的收益
-
技術層面
-
性能
- 核心任務運行時間縮短30分鐘
- 天級報表產出時間提前5小時
-
業務穩定性
- 數倉任務連續60天沒有 SLA break
-
運維靈活性
- 不再關心資源層運維,在業務峯谷時期可以進行秒級擴縮容
- 擴縮容步長為1CU,達到接近100%的資源使用率
- 根據作業級別的資源消耗統計快速定位不符合預期的作業並進行針對性優化
-
運行環境隔離,避免作業之間互相干擾,最大程度的降低運維風險
- 作業級別隔離 Spark 版本,可快速測試驗證最新版本 Spark 相關 feature
- 作業級別界面化定製 Python 環境,避免黑屏操作全局 Python 環境帶來的生產風險
-
-
財務層面
-
成本優化
- 數倉離線鏈路成本降低35%
- adhoc 查詢成本降低30%
-
-
業務層面
- 業務團隊因數據獲取效率提升,減少了約 40% 的無效等待時間,可將精力投入到業務優化、產品運營等價值環節。
- 數據準確性的提升(因 Serverless Spark 性能穩定,數據處理出錯率降低 90%)讓業務避免了因數據錯誤導致的決策失誤損失。
五、未來展望
- 推進指標加速層建設,實現 StarRocks 與 Serverless Spark 的自動化協同
- 深化湖倉一體能力,探索 Paimon + Serverless Spark + StarRocks 的端到端優化
- 持續利用 EMR 產品迭代(如統一 Catalog、AI Function)賦能數據智能化