Azure Synapse Analytics 中的 Apache Spark 集區組態
Spark 集區是一組中繼資料,其會定義當 Spark 具現化時的計算資源需求和相關聯行為特性。 這些特性包括但不限於名稱、節點數、節點大小、調整行為,以及存留時間。 Spark 集區本身不會取用任何資源。 建立 Spark 集區不會產生任何費用。 只有在對目標 Spark 集區執行 Spark 工作,並已視需要將 Spark 執行個體具現化後,才會產生費用。
您可以在這裡了解如何建立 Spark 集區並查看其所有屬性:開始使用 Synapse Analytics 中的 Spark 集區
獨立計算
[獨立計算] 選項藉由將實體計算資源專用於單一客戶,為來自不受信任服務的 Spark 計算資源提供更多的安全性。 [獨立計算] 選項最適合需要與其他客戶工作負載高度隔離的工作負載,原因包括符合合規性和法規需求。 [獨立計算] 選項只能與 XXXLarge (80 vCPU/504 GB) 節點大小搭配使用,且僅適用於下列區域。 雖然執行個體可能需要重新啟動,但是您可以在建立集區之後啟用或停用獨立計算選項。 如果您預期未來啟用這項功能,請確定您的 Synapse 工作區是在支援獨立計算的區域中建立。
- 美國東部
- 美國西部 2
- 美國中南部
- US Gov 亞利桑那州
- US Gov 維吉尼亞州
節點
Apache Spark 集區執行個體包含一個前端節點和兩個以上的背景工作節點,其中至少有三個節點在 Spark 執行個體中。 前端節點會執行額外的管理服務,例如 Livy、Yarn 資源管理員、Zookeeper 和 Spark 驅動程式。 所有節點都會執行節點代理程式和 Yarn 節點管理員之類的服務。 所有背景工作節點都會執行 Spark 執行程式服務。
節點大小
您可以使用節點大小來定義 Spark 集區,這個節點大小的範圍從具有 4 vCore 和 32 GB 記憶體的小型計算節點,直到每個節點具有 64 vCore 和 432 GB 記憶體的 XXLarge 計算節點。 雖然執行個體可能需要重新啟動,但可以在建立集區之後改變節點大小。
大小 | 虛擬核心 | 記憶體 |
---|---|---|
Small | 4 | 32 GB |
中 | 8 | 64 GB |
大型 | 16 | 128 GB |
特大 | 32 | 256 GB |
XXLarge | 64 | 432 GB |
XXX Large (獨立計算) | 80 | 504 GB |
Autoscale
針對 Apache Spark 集區的自動調整可讓您根據活動量,自動擴大和縮小計算資源。 當啟用自動調整功能時,您設定要調整的節點數目下限和上限。 當自動調整功能停用時,設定的節點數目將保持固定。 雖然執行個體可能需要重新啟動,但可以在建立集區之後改變此設定。
彈性集區儲存體
Apache Spark 集區目前支援彈性集區儲存體。 彈性集區儲存體允許 Spark 引擎監視背景工作角色節點的暫存儲存體,並視需要連結額外磁碟。 Apache Spark 集區會在集區具現化時,利用暫存磁碟儲存體。 Spark 作業會寫入隨機顯示對應輸出、隨機處理資料,以及溢寫資料至本機 VM 磁碟機。 可能利用本機磁碟機的作業範例,包括排序、快取和保存。 當暫時的 VM 磁碟空間用盡時,Spark 作業可能會因為「磁碟空間不足」錯誤 (java.io.IOException: 裝置無剩餘空間) 而失敗。 發生「磁碟空間不足」錯誤時,會導致作業無法移轉至客戶以重新設定 Spark 作業 (例如:調整分割區數量) 或叢集 (例如:將更多節點新增至叢集)。 這些錯誤可能不一致,而且使用者最後可能會執行生產作業以進行大量實驗。 對於多個維度的使用者而言,此流程可能過於昂貴:
- 浪費時間。 客戶必須透過試用和錯誤大量試驗作業設定,而且預期了解 Spark 的內部計量,以做出正確的決策。
- 浪費資源。 由於生產作業可以處理不同的資料量,若是未過度佈建資源,Spark 作業可能會因不確定性的方式失敗。 例如,請考慮資料扭曲的問題,這可能會導致少數節點需要比其他節點更多的磁碟空間。 目前在 Synapse 中,叢集中的每個節點都會取得相同大小的磁碟空間,而且在所有節點上增加磁碟空間並不是理想的解決方案,而且會導致大量浪費。
- 作業執行速度變慢。 在我們透過自動調整節點來解決問題的假設案例中 (假設成本對終端客戶而言不是問題),新增計算節點 (需要幾分鐘) 和新增儲存體 (需要幾秒鐘) 相比仍然昂貴。
您不需要採取任何動作,而且您應該會看到較少的作業失敗結果。
注意
Azure Synapse Analytics 彈性集區儲存體目前為「公開預覽」狀態。 「公開預覽」期間,使用彈性集區儲存體不會收費。
自動暫停
自動暫停功能版本在設定閒置的期間會釋放資源,藉以降低 Apache Spark 集區的整體成本。 一旦啟用了這項功能,就可以設定閒置時間的分鐘數。 自動暫停功能與自動調整功能無關。 無論自動調整已啟用還是已停用,都可以暫停資源。 雖然作用中工作階段可能需要重新啟動,但可以在建立集區之後變更此設定。