阿里大數(shù)據(jù)云原生化實(shí)踐,EMR Spark on ACK 產(chǎn)品介紹
一、云原生化挑戰(zhàn)及阿里實(shí)踐
大數(shù)據(jù)技術(shù)發(fā)展趨勢(shì)
云原生化面臨挑戰(zhàn)
計(jì)算與存儲(chǔ)分離
如何構(gòu)建以對(duì)象存儲(chǔ)為底座的 HCFS 文件系統(tǒng)
完全兼容現(xiàn)有的 HDFS
性能對(duì)標(biāo) HDFS,成本降低
shuffle 存算分離
如何解決 ACK 混合異構(gòu)機(jī)型
異構(gòu)機(jī)型沒有本地盤
社區(qū) [Spark-25299] 討論,支持 Spark 動(dòng)態(tài)資源,成為業(yè)界共識(shí)
緩存方案
如何有效支持跨機(jī)房、跨專線混合云
需要在容器內(nèi)支持緩存系統(tǒng)
ACK 調(diào)度
如何解決調(diào)度性能瓶頸
性能對(duì)標(biāo) Yarn
多級(jí)隊(duì)列管理
其他
錯(cuò)峰調(diào)度
Yarnon ACK 節(jié)點(diǎn)資源相互感知
阿里實(shí)踐 - EMR on ACK
整體方案介紹
通過數(shù)據(jù)開發(fā)集群/調(diào)度平臺(tái)提交到不同的執(zhí)行平臺(tái)
錯(cuò)峰調(diào)度,根據(jù)業(yè)務(wù)高峰低峰策略調(diào)整
云原生數(shù)據(jù)湖架構(gòu),ACK 彈性擴(kuò)縮容能力強(qiáng)
通過專線,云上云下混合調(diào)度
ACK 管理異構(gòu)機(jī)型集群,靈活性好
二、Spark 容器化方案
方案介紹
RSS Q&A
1、為什么需要 Remote Shuffle Service?
RSS 使得 Spark 作業(yè)不需要 Executor Pod 掛載云盤。掛載云盤非常不利于擴(kuò)展性和大規(guī)模的生產(chǎn)實(shí)踐。
云盤的大小無法事前確定,大了浪費(fèi)空間,小了 Shuffle 會(huì)失敗。RSS 專門為存儲(chǔ)計(jì)算分離場(chǎng)景設(shè)計(jì)。
Executor 將 shuffle 數(shù)據(jù)寫入了 RSS 系統(tǒng),RSS 系統(tǒng)來負(fù)責(zé)管理 shuffle 數(shù)據(jù),Executor 空閑后即可以回收。[SPARK-25299]
可以完美支持動(dòng)態(tài)資源,避免數(shù)據(jù)傾斜的長尾任務(wù)拖住 Executor 資源不能釋放。
2、RSS 性能如何,成本如何,擴(kuò)展性如何?
RSS 對(duì)于 shuffle 有很深的優(yōu)化,專門為存儲(chǔ)與計(jì)算分離場(chǎng)景、K8s 彈性場(chǎng)景而設(shè)計(jì)。
針對(duì) Shufflefetch 階段,可以將 reduce 階段的隨機(jī)讀變?yōu)轫樞蜃x,大大提升了作業(yè)的穩(wěn)定性和性能。
可以直接利用原有 K8s 集群中的磁盤進(jìn)行部署,不需要加多余的云盤來進(jìn)行 shuffle。性價(jià)比非常高,部署方式靈活。
Spark Shuffle
產(chǎn)生 numMapper * numReducer 個(gè) block
順序?qū)?、隨機(jī)讀
寫時(shí) Spill
單副本,丟數(shù)據(jù)需 stage 重算
EMR Remote Shuffle Service
追加寫、順序讀
無寫時(shí) Spill
兩副本;副本復(fù)制到內(nèi)存后即完成
副本之間通過內(nèi)網(wǎng)備份,無需公網(wǎng)帶寬
RSS TeraSort Benchmark
備注說明:以10T Terasort 為例,shuffle 量壓縮后大約 5.6T。可以看出該量級(jí)的作業(yè)在 RSS 場(chǎng)景下,由于 shuffle read 變?yōu)轫樞蜃x,性能會(huì)有大幅提升。
Spark on ECI 效果
Summary