開源大資料社群 & 阿裡雲 EMR 系列直播 第六期
主題:EMR spark on ACK 産品示範及最佳實踐
講師:石磊,阿裡雲 EMR 團隊技術專家
内容架構:
- 雲原生化挑戰及阿裡實踐
- Spark 容器化方案
- 産品介紹和示範
直播回放:掃描文章底部二維碼加入釘群觀看回放,或進傳入連結接
https://developer.aliyun.com/live/246868一、雲原生化挑戰及阿裡實踐
大資料技術發展趨勢

雲原生化面臨挑戰
計算與存儲分離
如何建構以對象存儲為底座的 HCFS 檔案系統
- 完全相容現有的 HDFS
- 性能對标 HDFS,成本降低
shuffle 存算分離
如何解決 ACK 混合異構機型
- 異構機型沒有本地盤
- 社群 [Spark-25299] 讨論,支援 Spark 動态資源,成為業界共識
緩存方案
如何有效支援跨機房、跨專線混合雲
- 需要在容器内支援緩存系統
ACK 排程
如何解決排程性能瓶頸
- 性能對标 Yarn
- 多級隊列管理
其他
- 錯峰排程
- Yarnon ACK 節點資源互相感覺
阿裡實踐 - EMR on ACK
整體方案介紹
- 通過資料開發叢集/排程平台送出到不同的執行平台
- 錯峰排程,根據業務高峰低峰政策調整
- 雲原生資料湖架構,ACK 彈性擴縮容能力強
- 通過專線,雲上雲下混合排程
- ACK 管理異構機型叢集,靈活性好
二、Spark 容器化方案
方案介紹
RSS Q&A
1、為什麼需要 Remote Shuffle Service?
- RSS 使得 Spark 作業不需要 Executor Pod 挂載雲盤。挂載雲盤非常不利于擴充性和大規模的生産實踐。
- 雲盤的大小無法事前确定,大了浪費空間,小了 Shuffle 會失敗。RSS 專門為存儲計算分離場景設計。
- Executor 将 shuffle 資料寫入了 RSS 系統,RSS 系統來負責管理 shuffle 資料,Executor 空閑後即可以回收。[SPARK-25299]
- 可以完美支援動态資源,避免資料傾斜的長尾任務拖住 Executor 資源不能釋放。
2、RSS 性能如何,成本如何,擴充性如何?
- RSS 對于 shuffle 有很深的優化,專門為存儲與計算分離場景、K8s 彈性場景而設計。
- 針對 Shufflefetch 階段,可以将 reduce 階段的随機讀變為順序讀,大大提升了作業的穩定性和性能。
- 可以直接利用原有 K8s 叢集中的磁盤進行部署,不需要加多餘的雲盤來進行 shuffle。成本效益非常高,部署方式靈活。
Spark Shuffle
- 産生 numMapper * numReducer 個 block
- 順序寫、随機讀
- 寫時 Spill
- 單副本,丢資料需 stage 重算
EMR Remote Shuffle Service
- 追加寫、順序讀
- 無寫時 Spill
- 兩副本;副本複制到記憶體後即完成
- 副本之間通過内網備份,無需公網帶寬
RSS TeraSort Benchmark
- 備注說明:以10T Terasort 為例,shuffle 量壓縮後大約 5.6T。可以看出該量級的作業在 RSS 場景下,由于 shuffle read 變為順序讀,性能會有大幅提升。
Spark on ECI 效果
Summary
對應産品介紹和示範,可以掃描文章底部釘釘群二維碼,進群觀看直播回放哦!
也可以點選以下連結直接觀看回放:
後續我們會在釘釘群定期推送精彩案例,邀請更多技術大牛直播分享。歡迎有興趣的同學掃下方二維碼加入釘釘群進行交流和技術分享。關注公衆号,鎖定每周精彩分享内容!