共用方式為


管理計算

本文說明如何管理 Azure Databricks 計算,包括顯示、編輯、開始、終止、刪除、控制存取,以及監視效能和記錄。 您也可以使用 叢集 API 以程式設計方式管理計算。

檢視計算

若要檢視計算,請按兩下 計算圖示工作區提要欄位中的 [計算 ]。

左側有兩個數據行,指出是否已釘選計算和計算狀態。 將滑鼠停留在狀態上以取得詳細資訊。

將計算組態視為 JSON 檔案

有時候,將計算組態視為 JSON 會很有説明。 當您想要使用 叢集 API 建立類似的計算時,這特別有用。 當您檢視現有的計算時,請移至 [設定 ] 索引卷標,按兩下 索引標籤右上方的 [JSON ],複製 JSON,然後將它貼到您的 API 呼叫中。 JSON 檢視是唯讀的。

釘選計算

計算終止 30 天后,就會永久刪除。 若要在計算終止超過 30 天之後保留所有用途的計算組態,系統管理員可以釘選計算。 最多可以釘選 100 個計算資源。

管理員 可以按下釘選圖示,從計算清單或計算詳細數據頁面釘選計算。

編輯計算

您可以從計算詳細資料 UI 編輯計算的組態。

注意

  • 附加至計算的筆記本和作業在編輯后仍會附加。
  • 在計算上安裝的連結庫在編輯後仍會繼續安裝。
  • 如果您編輯執行中計算的任何屬性(計算大小和許可權除外),您必須重新啟動它。 這可能會中斷目前使用計算的使用者。
  • 您只能編輯執行或終止的計算。 不過,您可以更新 計算的許可權,而不是在計算詳細數據 頁面上處於這些狀態。

複製計算

若要複製現有的計算,請從計算的 Kebab 功能表 Kebab功能選取 [複製]。

選取 [ 複製] 之後,計算建立UI會開啟預先填入計算組態。 複製中未包含下列屬性:

  • 計算許可權
  • 附加的筆記本

如果您不想在複製的計算中包含先前安裝的連結庫,請按兩下 [建立計算] 按鈕旁的下拉功能表,然後選取 [不使用連結庫建立]。

計算許可權

計算有四個許可權等級:NO PERMISSIONS、CAN ATTACH TO、CAN RESTART 和 CAN MANAGE。 下表列出每個許可權的能力。

重要

具有 CAN ATTACH TO 許可權的使用者可以在 log4j 檔案中檢視服務帳戶密鑰。 授與此許可權等級時請小心。

能力 沒有許可權 可以附加至 可以重新啟動 可以管理
將筆記本附加至計算 x x x
檢視 Spark UI x x x
檢視計算計量 x x x
檢視驅動程序記錄 x (請參閱附註)
終止計算 x x
啟動和重新啟動計算 x x
編輯計算 x
將連結庫附加至計算 x
調整計算大小 x
修改權限 x

工作區系統管理員在其工作區中具有所有計算的 CAN MANAGE 許可權。 用戶會自動擁有其建立之計算的 CAN MANAGE 許可權。

注意

秘密不會從叢集的 Spark 驅動程式記錄stdoutstderr數據流中修訂。 為了保護敏感數據,根據預設,Spark 驅動程式記錄只能由具有作業上 CAN MANAGE 許可權、單一使用者存取模式和共用存取模式叢集的用戶檢視。 若要允許具有 CAN ATTACH TO 或 CAN RESTART 許可權的使用者檢視這些叢集上的記錄,請在叢集設定中設定下列 Spark 組態屬性: spark.databricks.acl.needAdminPermissionToViewLogs false

在「無隔離共用存取模式叢集」上,Spark 驅動程式記錄可由具有 CAN ATTACH TO 或 CAN MANAGE 權限的使用者檢視。 若要將誰只能讀取記錄檔給具有 CAN MANAGE 權限的使用者,請將 設定 spark.databricks.acl.needAdminPermissionToViewLogstrue

請參閱 Spark 組態,以了解如何將 Spark 屬性新增至叢集組態。

設定計算許可權

本節說明如何使用工作區 UI 管理許可權。 您也可以使用 Permissions APIDatabricks Terraform 提供者

您必須具有計算的 CAN MANAGE 許可權,才能設定計算許可權。

  1. 在提要欄位中,按兩下 [ 計算]。
  2. 在計算的數據列上,按下右側的Kebab功能表 垂直省略號 ,然後選取 [ 編輯許可權]。
  3. [許可權 設定] 中,單擊 [選取使用者、群組或服務主體...] 下拉功能表,然後選取使用者、群組或服務主體。
  4. 從許可權下拉功能表中選取許可權。
  5. 按兩下 [ 新增 ],然後按兩下 [ 儲存]。

終止計算

若要儲存計算資源,您可以終止計算。 終止的計算組態會儲存,以便稍後重複使用它(或在作業的情況下自動啟動)。 您可以手動終止計算,或設定計算在指定的閑置期間之後自動終止。 當終止的計算數目超過 150 時,會刪除最舊的計算。

除非計算已 釘選 或重新啟動,否則會在終止后 30 天自動永久刪除。

終止的計算會出現在計算清單中,計算名稱左邊有灰色圓圈。

注意

當您在新的作業計算上執行 作業 時,計算會終止,且無法在作業完成時重新啟動。 另一方面,如果您排程作業以在已終止的現有所有用途計算上執行,該計算將會 自動啟動

重要

如果您使用試用版 進階版 工作區,則會終止所有執行中的計算資源:

  • 當您將工作區升級為完整 進階版 時。
  • 如果未升級工作區,且試用版到期。

手動終止

您可以從計算清單手動終止計算(按兩下計算資料列的平方)或計算詳細資料頁面(按兩下 [終止]。

自動終止

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

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

當計算上的所有命令,包括 Spark 作業、結構化串流和 JDBC 呼叫完成執行時,計算會被視為非使用中。

警告

  • 計算不會報告使用 DStream 所產生的活動。 這表示自動終止計算在執行 DStreams 時可能會終止。 關閉執行 DStreams 的計算自動終止,或考慮使用結構化串流。
  • 閑置計算會在終止前的非使用期間繼續累積 DBU 和雲端實例費用。

設定自動終止

您可以在新的計算 UI 中設定自動終止。 確定已核取此方塊,並在 [在閑置分鐘數后終止] 設定中輸入分鐘數。

您可以清除 [自動終止] 複選框,或指定 的無活動期間 0,退出退出自動終止。

注意

最新的 Spark 版本最好支援自動終止。 較舊的Spark版本有已知的限制,可能會導致計算活動報告不正確。 例如,執行 JDBC、R 或串流命令的計算可以報告導致計算終止的過時啟用時間。 請升級至最新的 Spark 版本,以受益於錯誤修正和自動終止的改善。

未預期的終止

有時候計算會意外終止,而不是因為手動終止或設定的自動終止而終止。

如需終止原因和補救步驟的清單,請參閱 知識庫

刪除計算

刪除計算會終止計算並移除其組態。 若要刪除計算,請從計算的Kebab 功能表功能表中選取 [刪除]。

警告

您無法恢復這個動作。

若要刪除釘選的計算,必須先由系統管理員取消釘選。

您也可以叫 用叢集 API 端點,以程式設計方式刪除計算。

重新啟動計算

您可以從計算清單、計算詳細資料頁面或筆記本重新啟動先前終止的計算。 您也可以叫 用叢集 API 端點,以程式設計方式啟動計算。

Azure Databricks 會使用其唯 一的叢集標識碼來識別計算。 當您啟動終止的計算時,Databricks 會使用相同的標識碼重新建立計算、自動安裝所有連結庫,以及重新附加筆記本。

注意

如果您使用 試用版工作區 且試用版已過期,您將無法啟動計算。

重新啟動計算以使用最新的映像進行更新

當您重新啟動計算時,它會取得計算資源容器和 VM 主機的最新映像。 請務必針對長時間執行的計算排程定期重新啟動,例如用於處理串流數據的計算。

您必須負責定期重新啟動所有計算資源,讓映像保持最新映像版本的最新狀態。

重要

如果您啟用帳戶或工作區的 合規性安全性配置檔 ,排程維護期間會視需要自動重新啟動長時間執行的計算。 這樣可降低自動重新啟動中斷排程工作的風險。 您也可以在維護期間強制重新啟動。 請參閱 自動叢集更新

筆記本範例:尋找長時間執行的計算

如果您是工作區管理員,您可以執行腳本來判斷每個計算執行的時間長度,並選擇性地在超過指定的天數時重新啟動這些計算。 Azure Databricks 會提供此腳本作為筆記本。

文稿的第一行會定義組態參數:

  • min_age_output:計算可以執行的天數上限。 預設為 1。
  • perform_restart:如果 True為 ,腳本會重新啟動任何存留期大於 所 min_age_output指定天數的計算。 默認值為 False,可識別長時間執行的計算,但不會重新啟動它們。
  • secret_configuration:將 和 REPLACE_WITH_KEY 取代REPLACE_WITH_SCOPE秘密範圍和金鑰名稱。 如需設定秘密的詳細資訊,請參閱筆記本。

警告

如果您將 設定 perform_restartTrue,腳本會自動重新啟動合格的計算,這可能會導致作用中作業失敗並重設開啟的筆記本。 若要降低中斷工作區業務關鍵性工作的風險,請規劃排程的維護期間,並務必通知工作區使用者。

識別並選擇性地重新啟動長時間執行的計算

取得筆記本

計算作業和 JDBC/ODBC 查詢的自動啟動

當指派給終止計算的作業排程執行,或您從 JDBC/ODBC 介面連線到終止的計算時,計算會自動重新啟動。 請參閱 建立作業JDBC 連線

計算自動啟動可讓您將計算設定為自動終止,而不需要手動介入即可重新啟動排程作業的計算。 此外,您可以排程作業以在終止的計算上執行,藉此排程計算初始化。

自動重新啟動計算之前, 會檢查計算作業 訪問控制許可權。

注意

如果您的計算是在 Azure Databricks 平臺 2.70 版或更早版本中建立的,則沒有自動啟動:排定在終止計算上執行的作業將會失敗。

在 Apache Spark UI 中檢視計算資訊

您可以選取 計算詳細數據頁面上的 [Spark UI ] 索引標籤,以檢視 Spark 作業的詳細資訊。

如果您重新啟動終止的計算,Spark UI 會顯示已重新啟動計算的資訊,而不是終止計算的歷程記錄資訊。

請參閱 使用 Spark UI 診斷成本和效能問題,以逐步解說使用 Spark UI 診斷成本和效能問題。

檢視計算記錄

Azure Databricks 提供三種計算相關活動的記錄:

  • 計算事件記錄檔,其會擷取計算生命週期事件,例如建立、終止和組態編輯。
  • Apache Spark 驅動程式和背景工作記錄檔,可供您用來偵錯。
  • 計算 init-script 記錄,這對偵錯 init 腳本十分有用。

本節討論計算事件記錄檔和驅動程式和背景工作記錄。 如需 init 腳本記錄的詳細資訊,請參閱 Init 腳本記錄

計算事件記錄檔

計算事件記錄檔會顯示由用戶動作或 Azure Databricks 自動手動觸發的重要計算生命週期事件。 這類事件會影響整個計算的作業,以及計算中執行的作業。

如需支援的事件類型,請參閱 叢集 API 數據結構。

事件會儲存 60 天,這與 Azure Databricks 中的其他數據保留時間相當。

檢視計算的事件記錄檔

若要檢視計算的事件記錄檔,請選取 計算詳細數據頁面上的 [事件記錄 ] 索引卷標。

如需事件的詳細資訊,請按下記錄中的數據列,然後按下 JSON 索引標籤以取得詳細數據。

計算驅動程式和背景工作角色記錄

來自筆記本、作業和程式庫的直接列印和記錄陳述式會移至 Spark 驅動程式記錄。 您可以從計算詳細資料頁面上的 [驅動程序記錄 ] 索引標籤取這些記錄檔。 按兩下記錄檔的名稱以下載它。

這些記錄有三個輸出:

  • 標準輸出
  • 標準錯誤
  • Log4j 記錄

若要檢視 Spark 背景工作記錄,請使用 [Spark UI ] 索引標籤。您也可以 設定計算的記錄傳遞位置 。 背景工作和計算記錄都會傳遞到您指定的位置。

監視效能

為了協助您監視 Azure Databricks 計算的效能,Azure Databricks 可讓您從計算詳細數據頁面存取計量。 針對 Databricks Runtime 12.2 和以下版本,Azure Databricks 可讓您存取 Ganglia 計量。 針對 Databricks Runtime 13.3 LTS 和更新版本,Azure Databricks 會提供計算計量。

此外,您可以設定 Azure Databricks 計算,以將計量傳送至 Azure 監視器中的 Log Analytics 工作區,這是 Azure 的監視平臺。

您也可以在計算節點上安裝 Datadog 代理程式,以將 Datadog 計量傳送至 Datadog 帳戶。

計算計量

計算計量是 Databricks Runtime 13.3 LTS 和更新版本的默認監視工具。 若要存取計算計量 UI,請瀏覽至 計算詳細數據頁面上的 [計量] 索引標籤

您可以使用日期選擇器篩選來選取時間範圍,以檢視歷程記錄計量。 計量會每分鐘收集一次。 您也可以按下 [ 重新 整理] 按鈕來取得最新的計量。 如需詳細資訊,請參閱 檢視計算計量

Ganglia 計量

注意

Ganglia 計量僅適用於 Databricks Runtime 12.2 和以下版本。

若要存取 Ganglia UI,請瀏覽至 計算詳細數據頁面上的 [計量] 索引標籤 。 所有 Databricks 執行時間都可在 Ganglia UI 中使用 CPU 計量。 GPU 計量適用於已啟用 GPU 的計算。

若要檢視即時計量,請按兩下 [Ganglia UI ] 連結。

若要檢視歷程記錄計量,請按一下快照集檔案。 快照集內含所選時間前一小時的彙總計量。

注意

Docker 容器不支援 Ganglia。 如果您使用 Docker 容器 搭配計算,則無法使用 Ganglia 計量。

設定 Ganglia 計量集合

根據預設,Azure Databricks 每 15 分鐘會收集一次 Ganglia 計量。 若要設定收集期間,請使用 init 腳本或在spark_env_vars建立叢集 API欄位中設定DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES環境變數。

Azure 監視器

您可以設定 Azure Databricks 計算,以將計量傳送至 Azure 監視器中的 Log Analytics 工作區,這是 Azure 的監視平臺。 如需完整指示,請參閱監視 Azure Databricks

注意

如果您已在自己的虛擬網路中部署 Azure Databricks 工作區,而且您已設定網路安全組 (NSG) 來拒絕 Azure Databricks 不需要的所有輸出流量,則必須為 “AzureMonitor” 服務標籤設定額外的輸出規則。

筆記本範例:Datadog 計量

Datadog 計量

您可以在計算節點上安裝 Datadog 代理程式,以將 Datadog 計量傳送至 Datadog 帳戶。 下列筆記本示範如何使用計算範圍的 init 腳本,在計算上安裝 Datadog 代理程式。

若要在所有計算上安裝 Datadog 代理程式,請使用計算原則管理計算範圍的 init 腳本。

安裝 Datadog 代理程式 init 腳本筆記本

取得筆記本

解除委任現成實例

由於 現成實例 可以降低成本,因此使用現成實例而非隨選實例建立計算是執行作業的常見方式。 不過,雲端提供者排程機制可以先占現成實例。 先占現成實例可能會導致執行中作業的問題,包括:

  • 隨機擷取失敗
  • 隨機數據遺失
  • RDD 數據遺失
  • 作業失敗

您可以啟用解除委任以協助解決這些問題。 解除委任會利用雲端提供者通常會在現成實例解除委任之前傳送的通知。 當包含執行程式的現成實例收到先占通知時,解除委任程式會嘗試將隨機和 RDD 資料遷移至狀況良好的執行程式。 根據雲端提供者而定,最後先佔前的持續時間通常是 30 秒到 2 分鐘。

Databricks 建議啟用解除委任時啟用數據遷移。 一般而言,當移轉更多數據時,錯誤的可能性會降低,包括隨機擷取失敗、隨機數據遺失,以及 RDD 資料遺失。 數據遷移也會導致重新計算減少並節省成本。

注意

解除委任是最佳工作,並不保證所有數據都可以在最終先佔之前進行移轉。 當執行中工作從執行程式擷取隨機數據時,解除委任無法保證發生隨機擷取失敗。

啟用解除委任後,不會將現成實例先佔所造成的工作失敗新增至失敗嘗試的總數。 先佔所造成的工作失敗不會算作失敗的嘗試,因為失敗的原因是工作外部,而且不會造成作業失敗。

啟用解除委任

若要在計算上啟用解除委任,請在計算組態 UI 的 [進階選項] 下方的 [Spark] 索引標籤中輸入下列屬性。 如需這些屬性的相關信息,請參閱 Spark 組態

  • 若要啟用應用程式的解除委任,請在 [Spark 組態] 字段中輸入此屬性

    spark.decommission.enabled true
    
  • 若要在解除委任期間啟用隨機數據遷移,請在 [Spark 設定 ] 字段中輸入此屬性:

    spark.storage.decommission.enabled true
    spark.storage.decommission.shuffleBlocks.enabled true
    
  • 若要在解除委任期間啟用 RDD 快取資料遷移,請在 [Spark 設定 ] 欄位中輸入此屬性:

    spark.storage.decommission.enabled true
    spark.storage.decommission.rddBlocks.enabled true
    

    注意

    當 RDD 儲存體 Level 複寫設定為 1 以上時,Databricks 不建議啟用 RDD 數據遷移,因為複本可確保 RDD 不會遺失數據。

  • 若要為背景工作角色啟用解除委任,請在 [環境變數] 字段中輸入此屬性

    SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
    

在UI中檢視解除委任狀態和遺失原因

若要從 UI 存取背景工作角色的解除委任狀態,請流覽至 [Spark 計算 UI - 主要 ] 索引標籤。

當解除委任完成時,您可以在計算詳細數據頁面的 [Spark UI > 執行程式] 索引標籤中檢視執行程式的遺失原因。