任務搶占

Databricks中的Apache Spark調度器自動搶占任務以強製公平共享。這保證了具有許多並發運行作業的集群上的交互響應時間。

提示

當任務被調度程序搶占時,它們的終止原因將設置為搶占通過調度器.這個原因在Spark UI中是可見的,可以用來調試搶占行為。

搶占選項

默認情況下,搶占是保守的:在調度程序幹預之前,作業可能會在30秒內耗盡資源。您可以通過在集群啟動時設置以下Spark配置屬性來優化搶占:

  • 是否應該啟用搶占。

    spark.databricks.preemption.enabled真實
  • 保證每個工作的公平份額。將此設置為1.0意味著調度程序將積極地嚐試確保完美的公平共享。將此設置為0.0可以有效地禁用搶占。默認設置為0.5,這意味著在最壞的情況下,一個job將得到其公平份額的一半。

    spark.databricks.preemption.threshold 0.5
  • 在搶占起作用之前,一個工作必須處於饑餓狀態多長時間。將該值設置為較低的值將提供更多的交互響應時間,但以集群效率為代價。建議取值範圍是1 ~ 100秒。

    spark.databricks.preemption.timeout 30年代
  • 調度器檢查任務搶占的頻率。這應該設置為小於搶占超時。

    spark.databricks.preemption.interval 5 s

有關作業調度的更多信息,請參見應用內調度