計算組態參考

本文說明建立計算 UI 中可用的組態設定。 大部分使用者使用其指派的原則來建立計算資源,這會限制可設定的設定。 如果沒有在 UI 中看到特定設定,這是因為您選取的原則不允許您設定該設定。

本文所述的組態和管理工具適用於全用途和工作計算。 如需設定工作計算的更多注意事項,請參閱在工作中使用 Azure Databricks 計算

建立新的全用途計算資源

若要建立新的全用途計算資源,請執行以下操作:

  1. 在工作區側邊欄中,按下 [計算]
  2. 按下 [建立計算] 按鈕。
  3. 設定計算資源。
  4. 按下 [建立計算]

您的新計算資源會自動開始運轉,很快就可以使用。

原則

原則是一組規則,用於限制使用者建立計算資源時可用的組態選項。 如果使用者沒有不受限制的叢集建立權利,就只能使用其被授與的原則來建立計算資源。

若要根據原則建立計算資源,請從 [原則] 下拉式功能表中選取原則。

依預設,所有使用者都可以存取個人計算原則,讓他們建立單一電腦計算資源。 若需要個人計算或任何其他原則的存取權,請連絡工作區管理員。

單一節點或多節點計算

視原則而定,您可以在建立單一節點計算資源或多節點計算資源之間二選一。

單一節點計算適用於使用少量資料或非分散式工作負載的工作,例如單一節點機器學習資源庫。 多節點計算應該用於具有分散式工作負載的較大工作。

單一節點屬性

單一節點計算資源具有以下屬性:

  • 在本機執行 Spark。
  • 驅動程式會同時作為主要和背景工作角色,沒有背景工作角色節點。
  • 在計算資源中,針對每個邏輯核心產生一個執行程式執行緒,並減去驅動程式的 1 個核心。
  • 將所有 stderrstdoutlog4j 記錄輸出儲存在驅動程式記錄中。
  • 無法轉換為多節點計算資源。

選取單一或多節點

在決定選取單節點計算還是多節點計算時,請考慮您的使用案例:

  • 大規模資料處理會耗盡單一節點計算資源上的資源。 對於這些工作負載,Databricks 建議使用多節點計算。

  • 單節點計算並不是為了共用而設計的。 為避免資源衝突,Databricks 建議在必須共用計算時使用多節點計算資源。

  • 多節點計算資源無法調整為 0 個背景工作角色。 請改用單一節點計算。

  • 單一節點計算與處理序隔離不相容。

  • 單一節點計算未啟用 GPU 排程。

  • 在單一節點計算中,Spark 無法讀取具有 UDT 資料行的 Parquet 檔案。 以下錯誤訊息結果:

    The Spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached.
    

    若要解決此問題,請停用原生 Parquet 讀取器:

    spark.conf.set("spark.databricks.io.parquet.nativeReader.enabled", False)
    

存取模式

存取模式是一項安全功能,可決定誰可以使用計算資源,以及他們可以使用計算資源存取的資料。 Azure Databricks 中的每個計算資源都有一個存取模式。

Databricks 建議對所有工作負載使用共用存取模式。 只在共用存取模式不支援必要功能時,才使用單一使用者存取模式。

存取模式 可讓使用者看見 UC 支援 支援的語言 備註
單一使用者 永遠 Yes Python、SQL、Scala、R 可以指派給單一使用者並供其使用。 在某些工作區中稱為指派存取模式。
共用 永遠 (需要進階方案) Yes Python (Databricks Runtime 11.3 LTS 及以上版本上)、SQL、Scala (使用 Databricks Runtime 13.3 LTS 及以上版本並且已啟用 Unity Catalog 的計算上) 多個使用者可以使用,並在使用者之間隔離資料。
未共用隔離 管理員可以在管理員設定頁面中強制執行使用者隔離,以隱藏此存取模式。 No Python、SQL、Scala、R 無隔離共用計算有一個相關的帳戶層級設定
自訂 隱藏 (針對所有新的計算) No Python、SQL、Scala、R 只有在您有未指定存取模式的現有計算資源時,此選項才會顯示。

您可以將現有計算資源的存取模式設定為單一使用者共用,藉此將其升級以符合 Unity Catalog 的需求。 如需有關啟用 Unity Catalog 之工作區中各存取模式所支援功能的詳細資訊,請參閱 Unity Catalog 的計算存取模式限制

注意

在 Databricks Runtime 13.3 LTS 及以上版本中,所有存取模式都支援 init 指令碼和程式庫。 要求和支援力度各有不同。 請參閱 Init 指令碼可以安裝在哪裡?叢集範圍程式庫

Databricks Runtime 版本

Databricks Runtime 是在您的計算上執行的一組核心元件。 使用 [Databricks Runtime 版本] 下拉式功能表選取執行階段。 如需特定 Databricks Runtime 版本的詳細資料,請參閱 Databricks Runtime 版本資訊版本與相容性。 所有版本都包含 Apache Spark。 Databricks 的建議如下:

  • 對於全用途計算,請使用最新版本,以確保程式碼與預先載入的套件之間具有最新的最佳化和最新的相容性。
  • 針對執行作業工作負載的工作計算,請考慮使用長期支援 (LTS) Databricks Runtime 版本。 使用 LTS 版本可確保您不會遇到相容性問題,並且可以在升級之前徹底測試工作負載。
  • 對於資料科學和機器學習使用案例,請考慮 Databricks Runtime ML 版本。

使用 Photon 加速

預設會對執行 Databricks Runtime 9.1 LTS 及以上版本的計算啟用 Photon。

若要啟用或停用 Photon 加速,請選取 [使用 Photon 加速] 核取方塊。 若要深入了解 Photon,請參閱什麼是 Photon?

背景工作角色和驅動程式節點類型

計算資源由一個驅動程式節點以及零個或多個背景工作角色節點組成。 您可以為驅動程式和背景工作角色節點挑選不同的雲端提供者執行個體類型,不過依預設,驅動程式節點會使用與背景工作角色節點相同的執行個體類型。 不同的執行個體類型系列適用不同的使用案例,例如記憶體密集型工作負載或計算密集型工作負載。

也可以選取要用作背景工作角色或驅動程式節點使用的集區。 僅使用集區搭配現成執行個體作為背景工作角色類型。 選取個別的隨選驅動程式類型可防止您的驅動程式被回收。 請參閱連線至集區

背景工作角色類型

在多節點計算中,背景工作角色節點會執行 Spark 執行程式和計算資源正常運作所需的其他服務。 當您使用 Spark 散發工作負載時,所有分散式處理都會發生在背景工作角色節點上。 Azure Databricks 會對每個背景工作節點執行一個執行程式。 因此,「執行程式」和「背景工作角色」詞彙會在 Databricks 架構的內容中交替使用。

提示

若要執行 Spark 工作,您至少需要一個背景工作角色節點。 如果計算資源沒有背景工作角色,您可以在驅動程式節點上執行非 Spark 命令,但 Spark 命令會失敗。

背景工作角色節點 IP 位址

Azure Databricks 會啟動具有兩個私人 IP 位址的背景工作角色節點。 節點的主要私人 IP 位址承載 Azure Databricks 內部流量。 Spark 容器會使用次要私人 IP 位址進行叢集內部通訊。 此模型可讓 Azure Databricks 在同個工作區中的多個計算資源之間提供隔離。

驅動程式類型

驅動程式節點會針對附加至計算資源的所有筆記本,維護其狀態資訊。 驅動程式節點也會維護 SparkContext,解譯您從計算資源上的筆記本或程式庫執行的所有命令,以及執行與 Spark 執行程式協調的 Apache Spark 主機。

驅動程式節點類型的預設值與背景工作角色節點類型相同。 如果您打算從 Spark 背景工作角色 collect() 大量資料,並在筆記本中進行分析,可以選擇具有更多記憶體的較大型驅動程式節點類型。

提示

由於驅動程式節點會維護附加筆記本的所有狀態資訊,因此請確保您已從驅動程式節點中斷連結未使用的筆記本。

GPU 執行個體類型

對於需要高效能、在計算方面具有挑戰性的工作 (例如與深度學習關聯的工作),Azure Databricks 支援以圖形處理器 (GPU) 加速的計算資源。 如需詳細資訊,請參閱啟用 GPU 的計算

Azure 機密運算 VM

Azure 機密運算 VM 類型可防止未經授權存取使用中的資料,包括來自雲端運營商的存取。 此 VM 類型有利於受到嚴格管制的產業和區域,以及在雲端有敏感資料的企業。 如需 Azure 機密運算的詳細資訊,請參閱 Azure 機密運算

若要使用 Azure 機密運算 VM 執行工作負載,請在背景工作角色和驅動程式節點下拉式清單中選取 DC 或 EC 系列 VM 類型。 請參閱 Azure 機密 VM 選項

現成執行個體

若要節省成本,可以選擇使用現成執行個體,也稱為 Azure 現成 VM,方法是選取 [現成執行個體] 核取方塊。

設定現成品

第一個執行個體一律是隨選的 (驅動程式節點一律隨選),後續的執行個體將是現成執行個體。

如果執行個體因不可用而被收回,Azure Databricks 會嘗試取得新的現成執行個體來取代收回的執行個體。 如果無法取得現成執行個體,系統會部署隨選執行個體來取代收回的執行個體。 只有已完全取得且正在執行的現成執行個體才支援此隨選容錯回復。 安裝期間失敗的現成執行個體不會被自動取代。

此外,當新節點新增至現有計算資源時,Azure Databricks 會嘗試取得這些節點的現成執行個體。

啟用自動調整

核取 [啟用自動調整] 時,您可以為計算資源提供背景工作角色最小數和最大數。 然後,Databricks 會選擇執行工作所需的適當背景工作角色數目。

若要設定計算資源將在哪個區間自動調整背景工作角色最小數和最大數,請使用 [背景工作角色類型] 下拉式清單旁邊的 [背景工作角色最小數] 和 [背景工作角色最大數] 欄位。

如果未啟用自動調整,您必須在 [背景工作角色類型] 下拉式清單旁邊的 [背景工作角色] 欄位中輸入固定數目的背景工作角色。

注意

當計算資源執行時,計算詳細資料頁面會顯示已配置背景工作角色的數目。 您可以將已配置背景工作角色的數目與背景工作角色設定進行比較,並視需要進行調整。

自動調整的優點

透過自動調整,Azure Databricks 會動態地重新配置背景工作角色,以考慮工作的特性。 管線的某些部分可能比其他人的計算需求更高,Databricks 會在工作的這些階段自動新增額外的背景工作角色 (並在不再需要時將其移除)。

自動調整規模可讓您更輕鬆地達到高使用率,因為您不需要佈建計算以配合工作負載。 這尤其適用於需求會隨時間改變的工作負載 (例如在一天內探索資料集),但也適用於較短的一次性工作負載,因為其佈建需求未知。 因此,自動調整有兩個優點:

  • 相較於固定大小的未佈建計算資源,工作負載可以更快執行。
  • 相較於靜態大小的計算資源,自動調整可降低整體成本。

根據計算資源和工作負載的常數大小,自動調整可讓您同時獲得一個或兩個優點。 當雲端提供者終止執行個體時,計算大小可能會低於所選背景工作角色最小數。 在此情況下,Azure Databricks 會持續重試以重新佈建執行個體,以維持背景工作角色最小數。

注意

自動調整不適用於 spark-submit 作業。

注意

在縮小結構化串流工作負載的叢集大小時,計算自動調整有其限制。 Databricks 建議針對串流工作負載使用差異即時資料表與增強型自動調整。 請參閱使用增強式自動調整最佳化差異即時資料表管線的叢集使用率

自動調整的運作方式

進階方案上的工作區使用經過最佳化的自動調整。 標準定價方案上的工作區使用標準自動調整。

經過最佳化的自動調整有以下特徵:

  • 在 2 個步驟中從最小值擴充為最大值。
  • 即使計算資源未閒置,也可以藉由查看隨機檔案狀態來縮小規模。
  • 根據目前節點的百分比縮小規模。
  • 在執行工作計算時,如果計算資源在過去 40 秒內未被充分利用,就會縮小規模。
  • 在執行全用途計算時,如果計算資源在過去 150 秒內未被充分利用,就會縮小規模。
  • spark.databricks.aggressiveWindowDownS Spark 組態屬性以秒為單位,指定計算每隔多久做一次縮小規模的決策。 增加值會導致計算更慢地縮小規模。 最大值為 600。

標準方案工作區使用標準自動調整。 標準自動調整有以下特徵:

  • 從新增 8 個節點開始。 然後以指數方式擴大,採取盡可能多的步驟來達到最大值。
  • 當 90% 的節點在 10 分鐘內不忙並且計算閒置至少 30 秒時,縮小規模。
  • 從 1 個節點開始,以指數方式縮小。

使用集區自動調整

如果要將計算資源連結至集區,請考慮下列事項:

  • 請確定所要求的計算大小小於或等於集區中的閒置執行個體最小數。 如果更大,計算啟動時間會相當於未使用集區的計算。

  • 請確定計算大小上限小於或等於集區的最大容量。 如果更大,則計算建立將會失敗。

自動調整範例

如果您將靜態計算資源重新設定為自動調整,Azure Databricks 會立即在下限和上限範圍內調整計算資源的大小,然後開始自動調整。 例如,如果您將計算資源重新設定為在 5 到 10 個節點之間自動調整,以下資料表展示具有特定初始大小的計算資源會發生什麼情況。

初始大小 重新設定之後的大小
6 6
12 10
3 5

啟用自動調整本機儲存體

通常很難估算特定工作會佔用的磁碟空間量。 為了讓您不必估算在建立時要連結至計算的受控磁碟的 GB 數,Azure Databricks 會自動在所有 Azure Databricks 計算上啟用自動調整本機儲存體。

自動調整本機儲存體時,Azure Databricks 會監視計算的 Spark 背景工作角色上提供的可用磁碟空間量。 如果背景工作角色開始執行時可用磁碟空間量太低,Databricks 會在磁碟空間用盡之前,自動將新的受控磁碟連結至背景工作角色。 連結磁碟時,每個虛擬機器的總磁碟空間 (包括虛擬機器的初始本機儲存體) 上限為 5 TB。

僅當虛擬機器返回 Azure 時,連結至虛擬機器的受控磁碟才會斷開。 也就是說,只要虛擬機器屬於某個執行中的計算,其與受控磁碟的連結就永遠不會斷開。 若要縮小受控磁碟使用量,Azure Databricks 建議在設定自動調整計算自動終止的計算中使用此功能。

本機磁碟加密

重要

這項功能處於公開預覽狀態

您用來執行計算的某些執行個體類型可能有本機連結的磁碟。 Azure Databricks 可能儲存這些本機連結磁碟上的隨機資料或暫時資料。 若要確保所有儲存類型的所有待用資料都經過加密,包括暫時儲存於計算資源本機磁碟上的隨機資料,可以啟用本機磁碟加密。

重要

因為與本機磁碟區之間的加密資料讀取和寫入會影響效能,工作負載的執行速度可能變慢。

啟用本機磁碟加密時,Azure Databricks 會在本機產生加密金鑰,此金鑰對每個計算節點都是唯一的,可用於加密儲存在本機磁碟上的所有資料。 金鑰的範圍是每個計算節點的本機,並且會隨著計算節點本身一起終結。 在其存留期間,金鑰駐留在記憶體中用於加密和解密,並加密儲存在磁碟上。

若要啟用本機磁碟加密,您必須使用叢集 API。 在建立或編輯計算期間,將 enable_local_disk_encryption 設定為 true

自動終止

您可以為計算設定自動終止。 在建立計算期間,指定您想要計算資源在閒置一段期間 (以分鐘計) 後終止。

如果目前時間與上一個命令在計算資源上執行之時間的差異,超過指定的閒置期間,Azure Databricks 會自動終止該計算。 資源。如需計算終止的詳細資訊,請參閱終止計算

標籤

標籤可讓您輕鬆監視組織中各種群組所使用的雲端資源的成本。 在建立計算時將標籤指定為索引鍵/值組,Azure Databricks 會將這些標籤套用至 VM 和磁碟區等雲端資源以及 DBU 使用量報告。

針對從集區啟動的計算,自訂標籤只會套用至 DBU 使用量報告,而且不會傳播至雲端資源。

如需有關集區和叢集標籤類型如何一起運作的詳細資訊,請參閱使用標籤監視使用量

若要將標籤新增至計算資源,請執行以下操作:

  1. 在 [標籤] 區段中,為每個自訂標籤新增索引鍵/值組。
  2. 按下 [新增]

Spark 設定

若要微調 Spark 工作,可以提供自訂 Spark 組態屬性

  1. 在計算組態頁面上,按下 [進階選項] 切換開關。

  2. 按下 [Spark] 索引標籤

    Spark 設定

    Spark 設定中,以每行一個索引鍵/值組的形式輸入組態屬性。

使用叢集 API 設定計算時,請在建立叢集 API更新叢集 APIspark_conf 欄位中設定 Spark 屬性。

若要在計算上強制執行 Spark 設定,工作區管理員可以使用計算原則

從祕密金鑰擷取 Spark 組態屬性

Databricks 建議將機密資訊 (例如密碼) 儲存在祕密金鑰中而不是純文本中。 若要在 Spark 組態中引用祕密金鑰,請使用下列語法:

spark.<property-name> {{secrets/<scope-name>/<secret-name>}}

例如,若要將名為 password 的 Spark 組態屬性設定為 secrets/acme_app/password 中儲存的祕密金鑰值:

spark.password {{secrets/acme-app/password}}

如需詳細資訊,請參閱在 Spark 組態屬性或環境變數中引用祕密金鑰的語法

對計算的 SSH 存取

基於安全性考慮,在 Azure Databricks 中,SSH 連接埠預設關閉。 如果想要啟用對 Spark 叢集的 SSH 存取,請參閱 SSH 至驅動程式節點

注意

請注意,僅當您的工作區已部署在您自己的 Azure 虛擬網路中時,才能啟用 SSH。

環境變數

設定您可以從計算資源上執行的 init 指令碼存取的自訂環境變數。 Databricks 也提供您可以在 init 指令碼中使用的預先定義的環境變數。 您無法覆寫這些預先定義的環境變數。

  1. 在計算組態頁面上,按下 [進階選項] 切換開關。

  2. 按下 [Spark] 索引標籤

  3. 在 [環境變數] 欄位中設定環境變數。

    [環境變數] 欄位

您也可以在建立叢集 API更新叢集 API 中的 spark_env_vars 欄位設定環境變數。

計算記錄傳遞

建立計算時,您可以指定位置來傳遞 Spark 驅動程式節點、背景工作角色節點和事件的記錄。 記錄每五分鐘傳遞一次,並在您選擇的目的地每小時封存一次。 當計算資源終止時,Azure Databricks 會保證傳遞產生的所有記錄,直到計算資源終止為止。

記錄的目的地取決於計算資源的 cluster_id。 如果指定的目的地為 dbfs:/cluster-log-delivery0630-191345-leap375 的計算記錄會傳遞至 dbfs:/cluster-log-delivery/0630-191345-leap375

若要設定記錄傳遞位置,請執行以下操作:

  1. 在計算頁面上,按下 [進階選項] 切換開關。
  2. 按下 [登入] 索引標籤。
  3. 選取目的地類型。
  4. 輸入計算記錄路徑。

注意

REST API 中也提供這項功能。 請參閱叢集 API