計算組態參考

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

本文所述的組態和管理工具適用於所有用途和作業計算。 如需設定作業計算的詳細資訊,請參閱 搭配您的作業使用 Azure Databricks 計算。

政策

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

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

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

單一節點或多節點計算

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

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

單一節點屬性

單一節點計算具有下列屬性:

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

選取單一或多個節點

在單一或多節點計算之間決定時,請考慮您的使用案例:

  • 大規模數據處理將會耗盡單一節點計算上的資源。 針對這些工作負載,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(在已啟用 Unity 目錄的計算上使用 Databricks Runtime 13.3 LTS 和更新版本) 多個使用者可以使用數據隔離的使用者。
無隔離共用 管理員 可以在系統管理員設定頁面中強制執行用戶隔離,以隱藏此存取模式 No Python、SQL、Scala、R 沒有隔離共用計算的相關帳戶層級設定。
自訂 隱藏 (針對所有新的計算) No Python、SQL、Scala、R 只有在您有沒有指定存取模式的現有計算時,才會顯示此選項。

您可以將現有的計算設定為 單一使用者共用,以升級現有的計算,以符合 Unity 目錄的需求。

注意

在 Databricks Runtime 13.3 LTS 和更新版本中,所有存取模式都支援 init 腳本和連結庫。 需求和支援會有所不同。 請參閱 Init 腳本的安裝位置?叢集範圍連結庫

Databricks Runtime 版本

Databricks Runtime 是一組在您的計算上執行的核心元件。 使用 Databricks 執行時間版本下拉功能表選取運行時間。 如需特定 Databricks 運行時間版本的詳細資訊,請參閱 Databricks Runtime 版本資訊版本和相容性。 所有版本都包含 Apache Spark。 Databricks 建議下列各項:

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

使用 Photon 加速

預設會在執行 Databricks Runtime 9.1 LTS 和更新版本的計算上啟用 Photon。

若要啟用或停用 Photon 加速,請選取 [ 使用 Photon 加速 ] 複選框。 若要深入瞭解 Photon,請參閱 什麼是 Photon?

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

計算是由一個驅動程序節點和零或多個背景工作節點所組成。 您可以為驅動程式和背景工作角色節點挑選不同的雲端提供者實例類型,不過根據預設,驅動程序節點會使用與背景工作節點相同的實例類型。 不同的實例類型系列適合不同的使用案例,例如需要大量記憶體或大量計算的工作負載。

您也可以選取要作為背景工作或驅動程序節點使用的集區。 請參閱 什麼是 Azure Databricks 集區?

背景工作角色類型

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

提示

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

背景工作節點IP位址

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

驅動程式類型

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

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

提示

由於驅動程式節點會維護鏈接筆記本的所有狀態資訊,因此請務必從驅動程序節點中斷連結未使用的筆記本。

GPU 實例類型

對於需要高效能的計算挑戰工作,例如與深度學習相關聯的工作,Azure Databricks 支援以圖形處理單位 (GPU) 加速計算。 如需詳細資訊,請參閱 已啟用 GPU 的計算

Azure 機密運算 VM

Azure 機密運算 VM 類型可在使用時防止未經授權的數據存取,包括來自雲端操作員。 此 VM 類型有利於高度管制的產業和區域,以及雲端中具有敏感數據的企業。 如需 Azure 機密運算的詳細資訊,請參閱 Azure 機密運算

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

現成實例

若要節省成本,您可以選擇使用 現成實例,也稱為 Azure Spot VM ,方法是核取 [Spot 實例] 複選框。

設定現成

第一個實例一律是隨選的(驅動程序節點一律是隨選的),而後續的實例將會是現成實例。

如果實例因無法使用而收回,Azure Databricks 會嘗試取得新的現成實例來取代收回的實例。 如果無法取得現成實例,則會部署隨選實例來取代收回的實例。 此外,當新的節點新增至現有的計算時,Azure Databricks 會嘗試取得這些節點的現成實例。

啟用自動調整

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

若要設定計算之間將自動調整的最小和最大背景工作角色數目,請使用 [背景工作類型] 下拉式清單旁邊的 [最小背景工作角色] 和 [最大背景工作角色] 字段。

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

注意

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

自動調整的優點

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

自動調整可讓您更輕鬆地達到高使用率,因為您不需要布建計算以符合工作負載。 這特別適用於隨著時間變更需求的工作負載(例如在一天期間探索數據集),但它也可以套用至一次性較短的工作負載,其布建需求未知。 因此,自動調整提供兩個優點:

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

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

注意

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

注意

計算自動調整有相應減少結構化串流工作負載的叢集大小限制。 Databricks 建議針對串流工作負載使用差異即時資料表與增強型自動調整。 請參閱 使用增強式自動調整優化差異實時數據表管線的叢集使用率。

自動調整的運作方式

進階版 和企業定價方案中的工作區會使用優化的自動調整。 標準定價方案上的工作區會使用標準自動調整。

優化自動調整具有下列特性:

  • 在 2 個步驟中從最小值相應增加為最大值。
  • 即使計算未閑置,也可以藉由查看隨機檔案狀態來相應減少。
  • 根據目前節點的百分比相應減少。
  • 在作業計算上,如果計算在過去 40 秒內使用量過低,就會相應減少。
  • 在所有用途的計算中,如果計算在過去 150 秒內使用量過低,則會相應減少。
  • Spark 組 spark.databricks.aggressiveWindowDownS 態屬性會以秒為單位指定計算進行相應減少決策的頻率。 增加值會導致計算更慢地相應減少。 最大值為 600。

標準自動調整用於標準方案工作區。 標準自動調整具有下列特性:

  • 從新增8個節點開始。 然後以指數方式相應增加,並視需要採取所需步驟來達到最大值。
  • 當 90% 的節點沒有忙碌 10 分鐘,且計算已閑置至少 30 秒時相應減少。
  • 從 1 個節點開始,以指數方式相應減少。

使用集區自動調整

如果您要將計算附加至集區,請考慮下列事項:

  • 請確定要求的計算大小小於或等於 集區中閑置實例 的數目下限。 如果比較大,計算啟動時間就相當於不使用集區的計算。
  • 請確定計算大小上限小於或等於 集區容量上限 。 如果比較大,計算建立將會失敗。

自動調整範例

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

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

啟用自動調整本機記憶體

通常很難估計特定作業需要多少磁碟空間。 為了讓您不必估計在建立時要連結至計算的受控磁碟數目,Azure Databricks 會自動在所有 Azure Databricks 計算上啟用自動調整本機記憶體。

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

只有在虛擬機傳回 Azure 時,才會中斷連結至虛擬機的受控磁碟。 也就是說,只要受控磁碟是執行中計算的一部分,就不會從虛擬機中斷連結。 若要縮小受控磁碟使用量,Azure Databricks 建議在設定自動調整計算自動終止的計算中使用此功能。

本機磁碟加密

重要

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

您用來執行計算的某些實體類型可能會有本機連結的磁碟。 Azure Databricks 可能會儲存這些本機連結磁碟上的隨機數據或暫時數據。 若要確保所有記憶體類型的所有待用數據都會加密,包括暫時儲存在計算本機磁碟上的隨機數據,您可以啟用本機磁碟加密。

重要

您的工作負載可能會因為讀取和寫入加密數據對本機磁碟區的效能影響而變慢。

啟用本機磁碟加密時,Azure Databricks 會在本機產生加密密鑰,該加密密鑰對每個計算節點而言都是唯一的,並且用來加密儲存在本機磁碟上的所有數據。 索引鍵的範圍是每個計算節點的本機,而且會與計算節點本身一起終結。 在其存留期間,金鑰會位於記憶體中以進行加密和解密,並儲存在磁碟上加密。

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

自動終止

您可以設定計算的自動終止。 在計算建立期間,以分鐘為單位指定閑置期間,讓計算終止。

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

標籤

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

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

如需集區和計算標籤類型如何搭配運作的詳細資訊,請參閱 使用標籤監視使用量

若要將標籤新增至計算:

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

Spark 設定

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

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

  2. 按兩下 [Spark] 索引 標籤

    Spark 設定

    Spark設定中,輸入組態屬性作為每行一個機碼/值組。

當您使用叢集 API 設定計算時,請在建立叢集 API更新叢集 API 的欄位中設定 Spark 屬性spark_conf

若要在計算上強制執行 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. 在 [環境變數] 欄位中設定環境變數

    環境變數欄位

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

計算記錄傳遞

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

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

若要設定記錄傳遞位置:

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

注意

這項功能也可在 REST API 中使用。 請參閱叢集 API