疑難排解和修復作業失敗
假設您已收到通知 (例如透過電子郵件通知、監視解決方案或在 Azure Databricks 工作 UI 中),得知在執行 Azure Databricks 工作時某個任務失敗。 本文中的步驟提供了指導,可協助您識別失敗的原因、修正您所發現問題的建議以及如何修復失敗的工作執行。
識別失敗的原因
若要在 Azure Databricks 作業 UI 尋找失敗的工作:
在側邊欄中,按下 [工作執行]。
在 [名稱] 資料行,按下工作名稱。 執行索引標籤會顯示作用中的執行和已完成的執行,包括任何失敗的執行。 [執行] 索引標籤中的矩陣圖檢視會顯示工作執行歷程記錄,包括每個工作任務的成功及失敗執行。 工作執行可能會失敗,因為失敗或因為相依性工作失敗而略過。 使用矩陣圖檢視,您可以快速識別作業執行的工作失敗。
將滑鼠停留在失敗的工作上,以查看相關聯的中繼資料。 此中繼資料包含開始和屆滿日期、狀態、持續時間叢集詳細資料,以及在某些情況的錯誤訊息。
若要協助識別失敗的原因,請按下失敗的工作。 工作執行詳細資料頁面隨即出現,其中顯示工作的輸出、錯誤訊息和相關聯的中繼資料。
根據失敗原因修正問題
您的工作可能因數個原因而失敗,例如資料品質問題、設定錯誤或計算資源不足。 以下是根據任務失敗的一些常見原因修正問題的建議步驟:
- 如果失敗與任務組態有關,請按下 [編輯任務]。 任務組態會在新的索引標籤中開啟。視需要更新工作組態,然後按下 [儲存任務]。
- 如果問題與叢集資源有關 (例如執行個體不足),有幾個選項:
- 如果您的工作設定為使用工作叢集,考慮使用共用的全用途叢集。
- 變更叢集組態。 按下 [編輯任務]。 在 [工作詳細資料] 面板的 [計算] 底下,按下 [設定] 以設定叢集。 您可以變更背景工作角色數目、執行個體類型或其他叢集組態選項。 也可以按下 [交換] 切換至另一個可用的叢集。 若要確保充分利用可用的資源,請檢閱叢集設定最佳做法。
- 如有必要,請讓系統管理員在部署工作區的雲端帳戶和區域中增加資源配額。
- 如果失敗是因為超過並行執行上限造成,請執行下列其中一項:
- 等候其他執行完成。
- 按下 [編輯任務]。 在 [工作詳細資料] 面板中,按下 [編輯並行執行],輸入 [並行執行上限] 的新值,然後按下 [確認]。
在某些情況下,失敗的原因可能來自您工作的上游;例如,外部資料來源不可用。 外部問題解決後,您仍可利用下個章節中介紹的修復執行功能。
重新執行失敗和略過的任務
確定失敗原因之後,您可以只執行任務和任何相依任務中不成功的部分,以修復失敗或取消的多重任務工作。 因為成功的任務和任何相依任務都不會重新執行,因此,此功能可減少從不成功的任務執行中復原所需的時間和資源。
可以在修復工作執行之前變更工作或任務設定。 系統會使用目前的工作和任務設定重新執行失敗的任務。 例如,如果您變更筆記本的路徑或叢集設定,系統會使用更新的筆記本或叢集設定來重新執行任務。
檢視 [任務執行詳細資料] 頁面上 [所有任務執行的歷程記錄]。
注意
- 如果一個或多個任務共用工作叢集,修復執行會建立新的工作叢集。 例如,如果原始執行使用工作叢集
my_job_cluster
,則第一次修復執行會使用新的工作叢集my_job_cluster_v1
,以便您可以輕鬆查看初始執行及任何修復執行所使用的叢集和叢集設定。my_job_cluster_v1
的設定與my_job_cluster
的目前設定相同。 - 只有協調兩項或更多任務的工作才支援修復。
- [執行] 索引標籤中顯示的 [持續時間] 值包括第一次執行開始的時間到最近一次修復執行結束的時間。 例如,如果執行失敗了兩次,在第三次執行時成功,則持續時間包括這三次執行的時間。
若要修復失敗的工作執行,請執行以下操作:
- 在工作執行資料表的 [開始時間] 資料行中,按下失敗執行的連結,或在矩陣圖檢視中按下失敗的執行。 [工作執行詳細資料] 頁面會隨即顯示。
- 按下 [修復執行]。 [修復工作執行] 對話方塊隨即顯示,其中列出將重新執行的所有失敗任務及相依的任務。
- 若要新增或編輯要修復之任務的參數,請在 [修復工作執行] 對話方塊中輸入參數。 您在 [修復工作執行] 對話方塊中輸入的參數會覆寫現有的值。 在後續的修復執行中,您可以清除 [修復工作執行] 對話方塊中的索引鍵和值,將參數還原為其原始值。
- 按下 [修復工作執行] 對話方塊中的 [修復執行]。
- 修復執行完成之後,矩陣圖檢視會更新為已修復執行的新資料行。 以紅色標識的失敗任務現在都已變更為綠色,表示整個工作執行成功。
檢視和管理連續工作失敗
當連續工作連續失敗超過閾值時,Azure Databricks 工作會使用指數輪詢重試工作。 當工作處於指數輪詢狀態時,[工作詳細資料] 面板中的訊息會顯示如下資訊:
- 連續失敗的次數。
- 工作執行無誤才算成功的期間。
- 如果目前沒有作用中的執行,距離下次重試的時間。
若要取消作用中的執行,請重設重試期間,然後啟動新的工作執行並按下 [重新啟動執行]。