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