揭晓阿里云神龙团队拿下TPCx-BB排名第一的背后技术
簡介:近日,TPC Benchmark Express-BigBench(簡稱TPCx-BB)公布了最新的世界排名,阿里云自主研發的神龍大數據加速引擎獲得了TPCx-BB SF3000排名第一的成績。TPCx-BB測試分為性能與性價比兩個維度。其中,在性能維度,在本次排名中,阿里云領先第二名高達41.6%,達到了2187.42 BBQpm,性價比領先第二名40%,降低到346.53 USD/BBQpm。
作者 | 神龍加速計算團隊
來源 | 阿里技術公眾號
一 背景介紹
近日,TPC Benchmark Express-BigBench(簡稱TPCx-BB)公布了最新的世界排名,阿里云自主研發的神龍大數據加速引擎獲得了TPCx-BB SF3000排名第一的成績。
TPCx-BB測試分為性能與性價比兩個維度。其中,在性能維度,在本次排名中,阿里云領先第二名高達41.6%,達到了2187.42 BBQpm,性價比領先第二名40%,降低到346.53 USD/BBQpm。
(TPCx-BB SF3000性能維度排行)
(TPCx-BB SF3000性價比維度排行)
借這個機會跟大家分享一下這個第一背后的技術歷程。
二 神龍大數據加速引擎MRACC概述
阿里云自研的神龍大數據加速引擎MRACC(Apasara Compute MapReduce Accelerator)是這次取得優異成績的殺手锏。
在數據處理需求激增的今天,許多企業會使用開源Spark、Hadoop組件或HDP、CDH等常用套件,自建開源大數據集群,處理數據量從TB到PB級,集群規模從幾臺到幾千臺。MRACC神龍大數據加速引擎,針對客戶自建場景,依托神龍底座,提供常用組件加速能力,如Spark、Hadoop、Alluxio等。
結合阿里云神龍架構的特性,MRACC進行了軟硬一體化優化,形成獨一無二的性能優勢,最終,使復雜SQL查詢場景性能相比社區版Spark提升2-3倍,使用eRDMA加速Spark性能提升30%。在神龍大數據加速引擎的加持下,企業使用阿里云ECS云服務器運行大數據集群,將獲得更高的性能和性價比。
圖1 MRACC神龍大數據加速引擎架構
三 MRACC-Spark介紹
Spark自從2010年面世,到2020年已經經過十年的發展,現在已經發展為大數據批計算的首選引擎。針對大數據最常用的Spark引擎,MRACC進行了重點優化。具體來說,針對大數據任務重IO特性,MRACC在網絡和存儲方面結合云上的架構優勢進行軟硬件加速,包括軟件的SQL引擎優化,使用緩存、文件裁剪、索引等優化手段,并嘗試將壓縮等運算卸載到異構器件;還使用eRDMA進行網絡加速,將shuffle階段的數據交換運行在eRDMA網絡,使得延時降低、CPU利用率大幅提升。
圖2 MRACC-Spark架構
四 Spark SQL引擎優化
從Spark2以后,Spark SQL, DataFrames and Datasets接口逐漸取代基礎RDD API成為Spark的主流編程模型。社區對Spark SQL進行了大量投入,據統計Spark3.0版本發布將其中接近一半的優化都集中在Spark SQL上。使用 SparkSQL 替代 Hive 執行離線任務已成為不少企業的主流選擇。
針對SQL引擎的anlyzer、optimizer、planner、Query execution幾個階段,我們都做了一些優化。Spark3.0對SQL引擎進行了大刀闊斧的改造和優化,其中AQE和DP機制廣受關注。但目前開源Spark的AE機制目前僅支持分區裁剪,對于非分區鍵和subquery裁剪不支持,我們針對這塊做了優化,支持subquery的動態數據裁剪,能大幅減少參與計算的數據量。
在物理計劃執行階段,我們支持了window topn排序,使得包含limit的sql語句性能大幅提升,并支持了parquet rowgroup裁剪、bloom filter join等高級特性。SPAKR SQL的CBO機制能較好的提高SQL執行效率,但是在cbo階段,join table過多會導致的cbo搜索開銷暴增,我們支持了遺傳算法搜索,解決了 join table過多導致的開銷暴增的情況。
此外,還支持了去重下推、join外鍵消除、完整性約束等功能,并結合deltalake支持了數據的增刪改操作。
圖3 MRACC-Spark的SQL引擎優化
五 近網絡RDMA優化
2021年杭州云棲大會上,阿里云發布第四代神龍架構,提供業界首個大規模彈性RDMA加速能力。RDMA是一種高性能網絡傳輸技術,提供直接內存訪問的方式,數據傳輸bypass Kernel,從而能減少CPU的開銷,提供低時延的高性能網絡。在分布式計算中,shuffle過程必不可少,且消耗較多的計算和網絡資源,是大數據分布式計算的優化重點。針對Spark 內存計算在shuffle階段數據交換特點,可將shuffle數據交換變為memory-network-memory的模式,充分利用RDMA用戶態內存直接交互、低延時、低cpu消耗的特點,最終在tpcxhs等端到端benchmark上獲得了30%的性能提升。
圖4 MRACC-Spark的eRDMA近網絡優化插件
六 性能優化結果
最終,在TPCDS 10T數據集上,相比最新的Spark3.1版本性能提升2.19倍。在TPCx-BB上相比第二名領先高達41.6%。
圖5 TPCDS及TPCx-BB的數據效果
七 展望
目前,所有這些優化,我們都封裝成插件形式交付給客戶,客戶代碼基本上不需要修改,方便客戶直接使用。
未來我們將持續將我們軟硬件一體化極致性能優化能力服務阿里云的大數據客戶,此外我們將在軟硬件一體化性能優化能力上持續迭代,構建性能更高、成本更低的MRACC神龍大數據加速服務能力提供給廣大用戶。
附:TPCx-BB介紹
TPCx-BB是由國際標準化測試權威組織(TPC)發布的基于零售業場景構建的端到端大數據測試基準,支持主流分布式大數據處理引擎,模擬了整個線上與線下業務流程,有30個查詢語句,涉及到描述性過程型查詢、數據挖掘以及機器學習的算法。TPCx-BB的測試具有數據量大、特征復雜、來源復雜等特點,與真實業務場景較為接近,對各行業的基礎設施選型有著重要參考意義。
TPCx-BB的測試結果,可以全面準確的反映端到端的大數據系統的整體運行性能。測試涵蓋了結構化、半結構化和非結構化數據,能夠從客戶實際場景角度更全面的評估大數據系統軟硬件性能、性價比、服務和功耗等各個方面。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的揭晓阿里云神龙团队拿下TPCx-BB排名第一的背后技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序媛如何自我突破?
- 下一篇: 基于 MaxCompute + Holo