揭秘阿里雲神龍團隊拿下TPCx-BB排名第一的背後技術

一  背景介紹

近日,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的測試結果,可以全面準確的反映端到端的大資料系統的整體執行效能。測試涵蓋了結構化、半結構化和非結構化資料,能夠從客戶實際場景角度更全面的評估大資料系統軟硬體效能、價效比、服務和功耗等各個方面。

SaaS模式雲資料倉庫實戰

企業資料倉庫現代化建設程序中,SaaS化成為必然趨勢。
本課程將帶你瞭解SaaS模式雲資料倉庫領導者 MaxCompute 產品能力及核心優勢,以及如何為企業帶來業務敏捷性、TCO顯著降低等關鍵業務價值,幫助大資料開發者對SaaS化雲數倉具備整體的認知。點選閱讀原文檢視詳情!

相關文章