您可以使用 Dynamic Workload Scheduler (DWS) 彈性啟動模式,提高 Managed Service for Apache Spark 批次工作負載取得稀少 GPU 資源的機率。
總覽
Dynamic Workload Scheduler 是一種可感知容量的排程器,可管理全球稀少的運算資源。在「彈性啟動」模式下,如果區域缺貨導致 GPU 無法立即使用,Managed Service for Apache Spark 可以將您的要求排入佇列,等待一段可設定的時間。
對於提交至 Managed Service for Apache Spark Spark 執行階段版本 3.0 以上的所有啟用 GPU 的工作負載,彈性啟動是預設行為。如果資源無法使用,系統會將要求加入佇列,而不是因缺貨錯誤而失敗。取得容量後,DWS 會在執行開始前「一次」佈建整個叢集。詳情請參閱「推出動態工作負載排程器」。
優點
- 提高可用性:大幅減少因 GPU 容量暫時不足而導致的工作失敗。
- 原子式佈建:以單一單元佈建叢集工作站,確保叢集完整性,並防止只建立部分工作站的情況。
- 預設可靠性:改善資源取得方式,無須手動設定參數。
配額需求
如要使用 DWS 彈性啟動,專案必須有足夠的配額:
- 先占 GPU 配額:DWS Flex Start 會耗用 GPU 配額集區的先占版本,而非標準集區 (例如
PREEMPTIBLE_NVIDIA_L4_GPUS)。詳情請參閱「Managed Service for Apache Spark 資源配額」。 - 本機固態硬碟配額:搭配使用
performance儲存空間級別與 GPU 加速機器時,Managed Service for Apache Spark 會佈建本機固態硬碟,用於高速重組和暫時儲存空間。專案在目標區域必須有足夠的本機 SSD 配額。
設定
對於執行階段版本 3.0+ 的 GPU 工作負載,系統預設會啟用 DWS 彈性啟動功能。您可以透過下列 Spark 屬性自訂逾時或停用這項功能:
| 屬性 | 說明 | 值 | 預設 |
|---|---|---|---|
spark.dataproc.[driver|executor].provisioning.mode |
指定佈建模型。使用 queue 啟用 DWS 彈性啟動 (GPU 的預設設定),或使用 default 停用 DWS 並使用隨選佈建。 |
queue、default |
queue (適用於 3.0+ 的 GPU) |
spark.dataproc.[driver|executor].provisioning.allocationTimeout |
節點集區在佇列中等待容量的時間上限。預設值為 1 小時 (3600s),最大值為 2 小時 (7200s)。附註:值必須以「s」結尾。 |
以秒為單位的時間長度 (例如 1800s) |
3600s |
範例:使用 DWS 彈性啟動的 GPU 批次工作負載
下列範例會使用 NVIDIA L4 GPU 提交 PySpark 批次工作。DWS
Flex Start 預設為啟用狀態,這項指令會為驅動程式和執行器設定 30 分鐘 (1800s) 的佇列逾時:
gcloud dataproc batches submit pyspark \
gs://my-bucket/path/to/your-script.py \
--project="PROJECT_ID" \
--region="REGION" \
--version="3.0" \
--properties="spark.dataproc.driver.resource.accelerator.type=l4,\
spark.dataproc.driver.provisioning.allocationTimeout=1800s,\
spark.dataproc.executor.resource.accelerator.type=l4,\
spark.dataproc.executor.provisioning.allocationTimeout=1800s,\
spark.dataproc.executor.compute.tier=premium,\
spark.dataproc.executor.disk.tier=premium"