開源大數據社區 & 阿里雲 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
對應產品介紹和演示,可以掃描文章底部釘釘群二維碼,進群觀看直播回放哦!
也可以點擊以下鏈接直接觀看回放:https://developer.aliyun.com/live/246868
後續我們會在釘釘群定期推送精彩案例,邀請更多技術大牛直播分享。歡迎有興趣的同學掃下方二維碼加入釘釘群進行交流和技術分享。關注公眾號,鎖定每週精彩分享內容!