創建、運行和管理Databricks作業

本文詳細介紹了如何使用Jobs UI創建、編輯、運行和監視Databricks Jobs。要了解如何使用Databricks CLI創建和運行作業,請參見喬布斯CLI.要了解如何使用Jobs API,請參見Jobs API 2.1

要使用Databricks作業創建第一個工作流,請參見快速入門

重要的

  • 您隻能在數據科學與工程工作空間或機器學習工作空間中創建作業。

  • 一個工作空間最多隻能運行1000個並發任務。一個429許多請求請求不能立即開始的運行時返回響應。

  • 一個工作空間在一小時內可以創建的作業數量限製為10000個(包括“運行提交”)。這個限製也會影響REST API和筆記本工作流創建的作業。

創建一個工作

  1. 做以下其中一件事:

    • 點擊工作圖標工作流在側邊欄中單擊創建作業按鈕

    • 在側邊欄中,單擊新圖標並選擇工作

    任務選項卡顯示創建任務對話框。

    創建任務界麵
  2. 取代為你的工作添加一個名稱……加上你的工作名稱。

  3. 控件中輸入任務的名稱任務名稱字段。

  4. 類型下拉菜單,選擇要運行的任務類型。看到任務類型選項

  5. 配置任務所在的集群。在集群下拉菜單,選擇其中一個新的工作集群現有的通用集群

    • 新工作集群:點擊編輯集群下拉菜單並完成集群配置

    • 現有通用集群:選擇已存在的集群集群下拉菜單。要在新頁麵中打開集群,請單擊外部鏈接集群名稱和描述右側的圖標。

    要了解有關選擇和配置集群以運行任務的詳細信息,請參見集群配置技巧

  6. 要添加依賴庫,請單擊+添加旁邊依賴庫.看到依賴庫

  7. 您可以為您的任務傳遞參數。每種任務類型對格式化和傳遞參數有不同的要求。

    • 筆記本:點擊添加並指定傳遞給任務的每個參數的鍵和值。方法手動運行任務時,可以覆蓋或添加其他參數運行帶有不同參數的作業選擇。參數設置的值筆記本電腦部件由參數的關鍵字指定。使用任務參數變量傳遞一組有限的動態值作為參數值的一部分。

    • JAR:使用json格式的字符串數組來指定參數。這些字符串作為參數傳遞給main類的main方法。看到配置JAR作業參數

    • 火花提交task:參數被指定為json格式的字符串數組。符合Apache Spark Spark -submit約定,將JAR路徑後的參數傳遞給主類的主方法。

    • Python腳本:使用json格式的字符串數組來指定參數。這些字符串作為參數傳遞,可以使用argparse模塊。

    • Python輪在…參數下拉菜單,選擇位置參數以json格式的字符串數組輸入參數,或選擇關鍵字參數>輸入每個參數的鍵和值。位置參數和關鍵字參數都作為命令行參數傳遞給Python wheel任務。

  8. 要可選地接收任務啟動、成功或失敗的通知,請單擊+添加旁邊電子郵件.在初始任務失敗和任何後續重試時發送失敗通知。

  9. 要可選地為任務配置重試策略,請單擊+添加旁邊重試.看到重試

  10. 要可選地為任務配置超時時間,請單擊+添加旁邊超時時間(秒).看到超時

  11. 點擊創建

創建第一個任務後,您可以配置作業級別的設置,如通知、作業觸發器和權限。看到編輯作業

如果需要添加其他任務,請單擊添加任務按鈕在DAG視圖中。如果配置了共享集群選項,則提供共享集群選項新工作集群對於之前的任務。您還可以在創建或編輯任務時為每個任務配置一個集群。要了解有關選擇和配置集群以運行任務的詳細信息,請參見集群配置技巧

任務類型選項

以下是可以添加到Databricks作業的任務類型以及不同任務類型的可用選項:

  • 筆記本在…下拉菜單,為筆記本選擇一個位置;要麼工作空間用於位於Databricks工作區文件夾中的筆記本或Git提供者用於位於遠程Git存儲庫中的筆記本。

    工作空間:使用文件瀏覽器找到筆記本,單擊筆記本名稱,單擊確認

    Git提供者:點擊編輯並輸入Git存儲庫信息。看到在Databricks作業中使用版本控製的源代碼

  • JAR:指定主類.使用包含主方法的類的完全限定名,例如:org.apache.spark.examples.SparkPi.然後單擊添加依賴庫添加運行任務所需的庫。這些庫中必須有一個包含主類。

    要了解更多關於JAR任務的信息,請參見在Databricks作業中使用JAR

  • 火花提交在…參數文本框,指定主類、庫JAR的路徑和所有參數,格式為字符串的JSON數組。下麵的示例配置一個spark-submit任務來運行DFSReadWriteTest從Apache Spark示例中:

    (”——階級”“org.apache.spark.examples.DFSReadWriteTest”“dbfs: / FileStore /圖書館/ spark_examples_2_12_3_1_1.jar”“/ dbfs / databricks-datasets / README.md”“/ FileStore / /輸出例子/”]

    重要的

    有幾個限製spark-submit任務:

    • 您隻能在新集群上運行spark-submit任務。

    • Spark-submit不支持集群自動伸縮。要了解有關自動縮放的詳細信息,請參見集群自動定量

    • Spark-submit不支持磚公用事業.要使用Databricks實用程序,請使用JAR任務。

  • Python腳本在…下拉列表,為Python腳本選擇一個位置工作空間對於本地工作區中的腳本,或DBFS用於位於DBFS或雲存儲上的腳本。在路徑文本框,輸入Python腳本的路徑:

    工作空間在…選擇Python文件對話框,瀏覽到Python腳本並單擊確認.你的腳本必須在磚回購

    DBFS:輸入DBFS或雲存儲上的Python腳本的URI;例如,dbfs: / FileStore / myscript.py

  • Delta Live Tables Pipeline在…管道下拉菜單,選擇一個現有的Delta Live Tables管道。

    重要的

    類隻能使用已觸發的管道管道的任務。連續管道不支持作為作業任務。要了解有關觸發管道和連續管道的更多信息,請參見連續與觸發的管道執行

  • Python輪在…包名文本框中,輸入要導入的包,例如:mywheel - 1.0 - py2.py3 any.whl——沒有.在入口點文本框中,輸入啟動車輪時要調用的函數。點擊添加依賴庫添加運行任務所需的庫。

  • 印度生物技術部:看在Databricks作業中使用dbt轉換有關如何配置DBT任務的詳細示例。

運行作業

  1. 點擊工作圖標工作流在側邊欄中。

  2. 選擇一個作業,然後單擊運行選項卡。您可以立即運行作業,也可以安排作業稍後運行。

如果具有多個任務的作業中的一個或多個任務不成功,則可以重新運行不成功任務的子集。看到重新運行失敗並跳過任務

立即運行作業

要立即運行作業,請單擊立即運行按鈕

提示

通過單擊,可以對帶有筆記本任務的作業執行測試運行現在運行.如果需要對筆記本進行更改,請單擊現在運行再次編輯後的筆記本將自動運行新版本的筆記本。

運行帶有不同參數的作業

你可以用現在用不同的參數運行使用不同的參數或現有參數的不同值重新運行作業。

  1. 點擊藍色羽絨插入符號旁邊現在運行並選擇現在用不同的參數運行或者,在活躍的運行表,點擊現在用不同的參數運行.根據任務類型輸入新的參數。

    • 筆記本:可以輸入鍵值對或JSON對象。提供的參數與觸發運行的默認參數合並。的值小部件

    • JARspark-submit:可輸入參數列表或JSON文檔。如果刪除鍵,則使用默認參數。你也可以添加任務參數變量為了跑步。

  2. 點擊運行

查看任務運行曆史

查看任務的運行曆史,包括成功和不成功的運行。

  1. 單擊任務上的作業運行詳情頁麵。的任務運行詳情頁麵出現。

  2. 在運行曆史記錄下拉菜單中選擇任務運行。

視圖的工作

點擊工作圖標工作流在側邊欄中。出現了Jobs列表。Jobs頁麵列出了所有已定義的作業、集群定義、調度(如果有的話)以及上次運行的結果。

請注意

如果你有增加工作限製啟用此工作區後,jobs列表中隻顯示25個作業,以縮短頁麵加載時間。使用左箭頭和右箭頭瀏覽完整的作業列表。

您可以在jobs列表中過濾作業:

  • 使用關鍵字。如果為該工作空間啟用了增加的作業限製特性,則隻支持按關鍵字搜索名稱、作業ID和作業標記字段。

  • 隻選擇你擁有的工作。

  • 選擇您有權訪問的所有作業。訪問這個過濾器需要這樣做作業訪問控製啟用。

  • 使用標簽.若要搜索僅使用密鑰創建的標記,請在搜索框中鍵入密鑰。要搜索用鍵和值創建的標記,您可以按鍵、按值或按鍵和值同時搜索。例如,對於帶有鍵的標記部門和值金融,你可以搜索部門金融找到合適的工作。若要同時搜索鍵和值,請輸入以冒號分隔的鍵和值;例如,部門:財務

還可以單擊任何列標題,按該列對作業列表進行排序(降序或升序)。當啟用增加的作業限製功能時,您隻能按名字工作ID,或創建通過.默認排序是按名字按升序排列。

為作業運行的視圖

您可以查看您有權訪問的所有作業的當前運行和最近完成的運行列表,包括由外部編排工具(如Apache Airflow或Azure Data Factory)啟動的運行。查看最近運行的作業列表:

  1. 點擊工作圖標工作流在側邊欄中。

  2. 名字列中,單擊作業名稱。的運行TAB顯示活動運行和已完成運行的矩陣和列表視圖。

矩陣視圖顯示作業的運行曆史,包括每個作業任務。

運行總持續時間矩陣的第一行顯示運行的總持續時間和運行的狀態。若要查看運行的詳細信息,包括開始時間、持續時間和狀態,請將鼠標懸停在運行總持續時間行。

每個單元格任務行表示任務和任務的相應狀態。若要查看每個任務的詳細信息,包括開始時間、持續時間、集群和狀態,將鼠標懸停在該任務所在的單元格上。

作業運行和任務運行條用不同顏色表示運行狀態。成功的運行是綠色的,不成功的運行是紅色的,跳過的運行是粉紅色的。單個作業運行和任務運行條的高度提供了運行持續時間的可視化指示。

運行列表視圖顯示:

  • 跑步的開始時間。

  • 運行標識符。

  • 運行是由作業調度或API請求觸發,還是手動啟動。

  • 當前運行作業的運行時間,或完成運行的總運行時間。

  • Spark日誌鏈接。

  • 運行的狀態等待運行跳過成功失敗的終止終止內部錯誤定時取消了取消,或等待重試

若要更改運行列表視圖中顯示的列,請單擊並選擇或取消選擇列。

查看作業運行的詳細信息中的運行鏈接開始時間列中的運行列表視圖。若要查看此作業最近一次成功運行的詳細信息,請單擊轉到最近的成功運行

Databricks維護作業運行的曆史記錄,最長可達60天。如果需要保留作業運行,Databricks建議在結果過期之前導出結果。有關更多信息,請參見導出作業運行結果

查看作業運行詳情

作業運行詳細信息頁麵包含作業輸出和日誌鏈接,包括作業運行中每個任務的成功或失敗信息。中訪問作業運行詳細信息運行為這項工作埋單。中查看作業運行詳細信息運行選項卡中,單擊運行的鏈接開始時間列中的運行列表視圖。回到運行選項卡,單擊工作ID價值。

當任務包含多個任務時,單擊一個任務可查看任務運行詳情,包括:

  • 運行任務的集群

    • 任務的Spark UI

    • 任務日誌

    • 任務的度量

單擊工作ID值返回給運行為這項工作埋單。

查看最近運行的作業

您可以查看您有權訪問的工作區中所有作業的當前運行和最近完成的運行列表,包括由外部編排工具(如Apache Airflow或Azure Data Factory)啟動的運行。查看最近運行的作業列表:

  1. 點擊工作圖標工作流在側邊欄中。出現了Jobs列表。

  2. 單擊工作運行選項卡顯示作業運行列表。

工作運行列表顯示:

  • 跑步的開始時間。

    • 與運行相關聯的作業的名稱。

    • 作業運行的用戶名。

    • 運行是由作業調度或API請求觸發,還是手動啟動。

    • 當前運行作業的運行時間,或完成運行的總運行時間。

    • 運行的狀態等待運行跳過成功失敗的終止終止內部錯誤定時取消了取消,或等待重試

    • 運行的任何參數。

查看作業運行詳情,點擊開始時間列的運行。要查看作業詳細信息,請單擊作業名稱工作列。

導出作業運行結果

您可以導出所有作業類型的筆記本運行結果和作業運行日誌。

導出筆記本運行結果

您可以通過導出作業運行的結果來持久化作業運行。對於筆記本作業運行,可以這樣做出口渲染後的筆記本,以後可以進口到你的Databricks工作區。

導出具有單個任務的作業的筆記本運行結果:

  1. 在作業詳細信息頁麵上,單擊查看詳細信息鏈接的運行運行已完成運行(過去60天)表格

  2. 點擊導出為HTML

導出具有多個任務的作業的筆記本運行結果:

  1. 在作業詳細信息頁麵上,單擊查看詳細信息鏈接的運行運行已完成運行(過去60天)表格

  2. 單擊要導出的筆記本任務。

  3. 點擊導出為HTML

導出作業運行日誌

您還可以導出作業運行的日誌。您可以將作業設置為通過job API自動將日誌傳遞給DBFS。看到new_cluster.cluster_log_conf對象傳遞給創造一份新工作操作(帖子/ /創建工作)在Jobs API中。

編輯作業

有些配置選項在作業中可用,其他選項在個人中可用任務.例如,隻能在作業上設置最大並發運行數,而必須為每個任務定義參數。

更改作業的配置。

  1. 點擊工作圖標工作流在側邊欄中。

  2. 名字列中,單擊作業名稱。

側板顯示工作細節.您可以更改作業的觸發器、集群配置、通知,最大並發運行數,以及添加或更改標記。如果作業訪問控製,您還可以編輯作業權限。

標簽

要向作業添加標簽或鍵值屬性,可以添加標簽當您編輯作業時。中的標記來過濾作業工作列表;例如,您可以使用部門標記,以過濾屬於特定部門的所有作業。

請注意

由於作業標簽不是為存儲敏感信息(如個人身份信息或密碼)而設計的,因此Databricks建議僅將標簽用於非敏感值。

標記還會傳播到運行作業時創建的作業集群,從而允許您將標記與現有作業一起使用集群監控

要添加或編輯標簽,請單擊+標簽工作細節側板。您可以將標記添加為鍵和值或標簽。如果要添加標簽,請在關鍵Field,然後離開價值字段是空的。

集群

若要查看與集群關聯的任務,請將鼠標懸停在側麵板中的集群上。要更改所有關聯任務的集群配置,請單擊配置在集群下。要為所有關聯任務配置新集群,請單擊交換在集群下。

控製對作業的訪問

作業訪問控製使作業所有者和管理員能夠對其作業授予細粒度的權限。作業所有者可以選擇哪些其他用戶或組可以查看作業的結果。所有者還可以選擇誰可以管理他們的作業運行(立即運行和取消運行權限)。

看到作業訪問控製獲取詳細信息。

最大並發運行

此作業的最大並行運行數。如果作業在嚐試開始新運行時已達到其最大活動運行數,則Databricks將跳過該運行。將此值設置為高於默認值1的值,以並發執行同一作業的多個運行。這很有用,例如,如果您以頻繁的時間表觸發作業,並且希望允許連續的運行相互重疊,或者您希望觸發輸入參數不同的多個運行。

編輯任務

設置任務配置選項。

  1. 點擊工作圖標工作流在側邊欄中。

  2. 名字列中,單擊作業名稱。

  3. 單擊任務選項卡。

任務依賴關係

方法定義作業中任務的執行順序取決於下拉菜單。您可以將此字段設置為作業中的一個或多個任務。

編輯任務依賴項

請注意

取決於如果作業僅由單個任務組成,則不可見。

配置任務依賴關係創建任務執行的有向無環圖(DAG),這是在作業調度器中表示執行順序的一種常用方法。例如,考慮以下由四個任務組成的工作:

任務依賴關係示例圖
  • 任務1是根任務,不依賴於任何其他任務。

  • 任務2和任務3取決於任務1先完成。

  • 最後,任務4取決於任務2和任務3能否成功完成。

Databricks在運行下遊任務之前運行上遊任務,並盡可能多地並行運行它們。下圖說明了這些任務的處理順序:

任務依賴關係示例流程

單個任務配置選項

單個任務有以下配置選項:

在本節中:

集群

要配置任務運行的集群,請單擊集群下拉菜單。您可以編輯共享作業集群,但如果共享集群仍被其他任務使用,則不能刪除該集群。

要了解有關選擇和配置集群以運行任務的詳細信息,請參見集群配置技巧

依賴庫

在任務運行之前,將在集群上安裝相關庫。必須設置所有任務依賴項,以確保在運行開始之前安裝它們。遵循下麵的建議管理庫依賴關係用於指定依賴項。

超時

工作或任務的最大完成時間。如果作業或任務在此時間內沒有完成,Databricks將其狀態設置為“超時”。

重試

確定重試失敗運行的時間和次數的策略。單擊,設置任務的重試次數高級選項並選擇編輯重試策略.重試間隔以毫秒為單位計算,從失敗的運行開始到隨後的重試運行。

請注意

如果兩者都配置超時重試,則每次重試都會超時。

克隆作業

您可以通過克隆現有作業來快速創建新作業。克隆作業將創建作業的相同副本,但作業ID不同。在作業頁麵上,單擊更多…在作業名稱旁邊,然後選擇克隆從下拉菜單中。

克隆任務

您可以通過克隆現有任務來快速創建新任務:

  1. 在作業的頁麵上,單擊任務選項卡。

  2. 選擇需要克隆的任務。

  3. 點擊垂直省略號並選擇克隆的任務

刪除作業

若要刪除作業,請在作業頁麵單擊更多…在作業名稱旁邊,然後選擇刪除從下拉菜單中。

刪除任務

刪除任務。

  1. 單擊任務選項卡。

  2. 選擇需要刪除的任務。

  3. 點擊垂直省略號並選擇刪除任務

複製任務路徑

將路徑複製到一個任務,例如,一個筆記本路徑:

  1. 單擊任務選項卡。

  2. 選擇包含要複製路徑的任務。

  3. 點擊作業複製圖標在任務路徑旁邊,將路徑複製到剪貼板。

最佳實踐

集群配置技巧

在操作作業時,集群配置非常重要。下麵提供了關於選擇和配置作業集群的一般指導,然後是針對特定作業類型的建議。

使用共享作業集群

要對編排多個任務的作業優化資源使用,請使用共享作業集群。共享作業集群允許在同一作業中運行多個任務以重用集群。您可以使用單個作業集群來運行作為作業一部分的所有任務,也可以使用針對特定工作負載優化的多個作業集群。使用共享作業集群。

  1. 選擇新工作群創建任務並完成集群配置

  2. 向作業添加任務時選擇新集群,或創建新作業集群。選擇時配置的任何集群新工作群可用於工作中的任何任務。

共享作業集群的作用域限定為單個作業運行,並且不能被其他作業或同一作業的運行使用。

不能在共享作業集群配置中聲明庫。必須在任務設置中添加依賴庫。

為您的作業選擇正確的集群類型

  • 新工作群是用於作業或任務運行的專用集群。共享作業集群在使用集群的第一個任務啟動時創建並啟動,在使用集群的最後一個任務完成後終止。集群在空閑時不會終止,隻有在使用它的所有任務完成後才會終止。如果共享作業集群失敗或在所有任務完成之前終止,則會創建一個新集群。範圍為單個任務的集群將在任務啟動時創建並啟動,並在任務完成時終止。在生產環境中,Databricks建議使用新的共享或任務範圍集群,以便每個作業或任務在完全隔離的環境中運行。

  • 當在新集群上運行任務時,該任務被視為數據工程(任務)工作負載,受任務工作負載定價的約束。當您在現有的通用集群上運行任務時,該任務被視為數據分析(通用)工作負載,受通用工作負載定價的約束。

  • 如果選擇已終止的現有集群,並且作業所有者具有可以重新啟動許可當作業計劃運行時,Databricks啟動集群。

  • 現有的通用集群最適合更新之類的任務指示板每隔一段時間。

使用池來減少集群啟動時間

要減少新作業集群的啟動時間,請創建一個並配置作業的集群以使用池。

筆記本工作提示

總筆記本單元輸出(所有筆記本單元的組合輸出)的大小限製為20MB。此外,單個單元格輸出受8MB大小限製。如果總計算單元輸出的大小超過20MB,或者單個計算單元的輸出大於8MB,則會取消運行並將其標記為失敗。

流媒體的任務

Spark Streaming作業不應該將最大並發運行設置為大於1。流式作業應該設置為使用cron表達式運行“*****?"(每分鍾)。

由於流任務是連續運行的,因此它應該始終是作業中的最後一個任務。