全部產品
Search
文件中心

E-MapReduce:為Spark叢集關聯RSS

更新時間:Mar 29, 2025

RSS(EMR Remote Shuffle Service)是E-MapReduce(簡稱EMR)為了提升Shuffle穩定性和效能推出的向外延展群組件,最佳化了Spark原生的Shuffle。本文為您介紹EMR on ACK上的Spark叢集如何關聯RSS。

背景資訊

目前在ACK的情境下,Spark Shuffle面臨的問題:

  • Spark Shuffle對本機存放區有依賴,許多計算儲存分離的機型、使用ECI的情境下沒有內建本地碟,需要額外購買和掛載雲端硬碟,性價比和使用效率低。

  • Spark2在ACK環境下不支援Dynamic Allocation,Spark3基於ShuffleTracking實現了Dynamic Allocation,但Executor回收效率低下。

目前Spark Shuffle方案缺點如下:

  • Shuffle Write在巨量資料量情境下會溢出,導致寫放大。
  • Shuffle Read過程中存在大量的網路小包導致的Connection reset問題。
  • Shuffle Read過程中存在大量小資料量的IO請求和隨機讀,對磁碟和CPU造成高負載。
  • 對於M*N次的串連數,在M和N數千的規模下,作業基本無法完成。

EMR推出的RSS服務,可以最佳化上述Spark Shuffle方案的問題,完美支援ACK環境下的Dynamic Allocation。

前提條件

使用限制

  • Spark叢集僅支援與同一ACK叢集下的Shuffle Service叢集進行關聯。

  • 為Spark叢集(EMR on ACK)關聯RSS叢集(EMR on ACK)時,請確保使用相同的叢集版本,以避免相容性風險。您可以在叢集詳情頁面查看叢集的版本資訊。

操作步驟

  1. 登入EMR on ACK控制台

  2. 關聯RSS。

    1. 在EMR on ACK頁面,單擊已建立Spark叢集的叢集名稱。

    2. 叢集詳情頁面的基礎資訊地區,單擊關聯ShuffleService後面的前往關聯

    3. 關聯集群的地區內,單擊新增

    4. 關聯集群對話方塊中,選擇已建立的Shuffle Service叢集,單擊關聯

  3. 可選:配置RSS參數,詳情請參見Celeborn配置