前一段時(shí)間我參加了E-MapReduce極客挑戰(zhàn)賽,很幸運(yùn)的獲得了季軍。在這把我的比賽攻略給大家分享一下,希望可以拋磚引玉。
賽題分析與理解
賽題背景:
大數(shù)據(jù)時(shí)代,上云已成為越來越多終端客戶大數(shù)據(jù)方案的落地選擇,阿里云 EMR 以其易用性高,性能強(qiáng),彈性大的特點(diǎn),成為了廣大用戶的首選。英特爾? 傲騰?持久內(nèi)存是兼具出色的內(nèi)存與存儲性能的解決方案,將高性價(jià)比的大容量內(nèi)存與對數(shù)據(jù)持久性的支持巧妙地結(jié)合在一起。本題結(jié)合阿里云 EMR和英特爾? 傲騰?數(shù)據(jù)中心級持久內(nèi)存(后文簡稱PMEM)以及Intel OAP(Optimized Analytic Package for Spark)軟件包,優(yōu)化軟件系統(tǒng)和利用硬件的特征,追求TPC-DS測試集的最優(yōu)性能。
賽題描述:
EMR 團(tuán)隊(duì)提供用于比賽的Spark 3.1.2代碼分支,選手進(jìn)行 Spark 代碼優(yōu)化和參數(shù)調(diào)優(yōu)以提升SparkSQL執(zhí)行效率,同時(shí)組委會(huì)提供性能測評工具供選手自行測試(單機(jī)環(huán)境或EMR集群環(huán)境)。在比賽階段,選手將最終優(yōu)化后的Spark代碼和調(diào)優(yōu)參數(shù)打包,通過天池平臺提交,天池平臺會(huì)使用相同的性能測評工具,進(jìn)行評測和排名。
EMR軟件版本:EMR-5.2.1
Master節(jié)點(diǎn):ecs.g6e.4xlarge 1臺
Worker節(jié)點(diǎn):ecs.re6p.4xlarge 3臺,單機(jī)系統(tǒng)盤100GB ESSD 1塊,數(shù)據(jù)盤200GB ESSD 4塊,持久內(nèi)存252 GiB。
賽題要求:
1、比賽使用的測試數(shù)據(jù)集大小為1T,1 TB TPC-DS數(shù)據(jù)集已經(jīng)提前生成,數(shù)據(jù)格式為 Parquet,生成數(shù)據(jù)集的隨機(jī)因子組委會(huì)不公開。
2、比賽使用SQL query為TPC-DS工具生成的99個(gè)SQL,組委會(huì)從中選擇30條SQL進(jìn)行評測,具體選取的SQL組委會(huì)不公開。
3、選手可以進(jìn)行Spark參數(shù)優(yōu)化,SQL優(yōu)化,執(zhí)行Plan算子優(yōu)化,引擎優(yōu)化,調(diào)度優(yōu)化,數(shù)據(jù)傳輸優(yōu)化等,以便讓SQL作業(yè)執(zhí)行更快速。
關(guān)鍵技術(shù):
用到的關(guān)鍵技術(shù)包括:E-MapReduce,Spark,Intel Optane (PMEM)及Intel OAP。如下圖所示:

賽題分析
通過對賽題分析可以發(fā)現(xiàn),主要可以通過參數(shù)優(yōu)化、硬件優(yōu)化及代碼優(yōu)化來實(shí)現(xiàn)對Spark效率的提升。如下圖所示:

整體方案與優(yōu)化
整體方案
考慮到初賽和復(fù)賽的Worker的配置差異主要是復(fù)賽的Worker有傲騰持久內(nèi)存,所以初賽以參數(shù)優(yōu)化為主,復(fù)賽以硬件優(yōu)化及代碼優(yōu)化為主。

利用Optane
復(fù)賽開始使用Optane,通過Optane提升比賽成績

通過參數(shù)優(yōu)化及應(yīng)用Optane,最后成績760左右。
經(jīng)驗(yàn)與感想
IT系統(tǒng)調(diào)優(yōu)是一個(gè)復(fù)雜的工程,需要對軟件系統(tǒng)、硬件平臺、技術(shù)體系進(jìn)行深入的了解。查找資料,借鑒前人經(jīng)驗(yàn),可以大大的加快調(diào)優(yōu)的進(jìn)度。根據(jù)軟硬件情況,合理的規(guī)劃,可以做到事半功倍。
通過這次比賽對Spark、硬件加速、湖倉一體架構(gòu)等有了更深入的了解。
感謝主辦方這么一個(gè)機(jī)會(huì),讓我可以參與這么有意思的比賽。感謝各位導(dǎo)師對我問題的耐心解答和幫助,辛苦大家了,謝謝。