創建、運行和管理數據磚的工作

本文詳細介紹如何創建、編輯、運行和監控磚工作使用的UI。學習使用磚CLI的創建和運行工作,明白了喬布斯CLI。使用API的工作了解,明白了喬布斯API 2.1

創建您的第一個工作流與磚的工作,看到快速入門

重要的

  • 你隻能創造就業數據科學與工程工作區或一個機器學習的工作區。

  • 1000個並發任務工作空間是有限的。一個429年許多請求當你返回請求的響應不能立即開始運行。

  • 就業人數工作區可以創建在10000年一個小時是有限的(包括”提交”)。REST API創建的這個限製也會影響就業和筆記本工作流。

創建一個工作

  1. 做下列之一:

    • 點擊工作圖標工作流在側邊欄,然後單擊創建工作按鈕

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

    任務選項卡創建任務對話框出現。

    創建任務的屏幕
  2. 取代添加一個名稱為你的工作…對你的工作名稱。

  3. 輸入一個名稱的任務任務名稱字段。

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

  5. 配置任務運行的集群。在集群下拉菜單,選擇新工作的集群現有通用的集群

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

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

    了解更多關於選擇和配置集群運行任務,明白了集群配置建議

  6. 添加依賴庫,點擊+添加旁邊依賴庫。看到依賴庫

  7. 你可以為你的任務傳遞參數。每個任務類型有不同的要求,格式和傳遞參數。

    • 筆記本:點擊添加並指定每個參數的鍵和值傳遞給任務。你可以覆蓋或添加額外的參數手動運行一個任務使用用不同的參數運行工作選擇。參數設置的值筆記本電腦部件指定的關鍵參數。使用任務參數變量通過一組有限的動態值作為參數值的一部分。

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

    • 火花提交任務:參數指定為一個json格式的字符串數組。符合Apache火花spark-submit慣例,參數在JAR的路徑傳遞給主類的主要方法。

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

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

  8. 為任務開始有選擇地接收通知,成功,或失敗,點擊+添加旁邊電子郵件。通知發送初始任務失敗和任何後續重試。

  9. 可選配置重試策略的任務,點擊+添加旁邊重試。看到重試

  10. 可選配置的超時任務,點擊+添加旁邊在幾秒鍾內超時。看到超時

  11. 點擊創建

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

添加另一個任務,點擊添加任務按鈕在DAG視圖中。一個共享的集群選項如果您配置了一個提供新工作的集群前一個任務。您還可以配置一個集群為每個任務當您創建或編輯一個任務。了解更多關於選擇和配置集群運行任務,明白了集群配置建議

任務類型的選擇

以下是可以添加到你的磚工作任務類型和可用的選項不同的任務類型:

  • 筆記本:在下拉菜單,選擇一個筆記本的位置;要麼工作空間對於一個筆記本或位於一個磚工作區文件夾Git提供者筆記本位於一個偏遠的Git存儲庫。

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

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

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

    了解更多關於JAR任務,明白了JAR的工作

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

    (”——階級”,“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不支持磚公用事業。使用磚工具,使用JAR任務。

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

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

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

  • 三角洲生活表管道:在管道下拉菜單,選擇一個已存在的三角洲生活表管道。

    重要的

    你隻可以使用管道的觸發管道的任務。不支持連續管道的工作任務。更多地了解和連續管道引起的,看到的連續與管道執行觸發

  • Python輪:在包名文本框,輸入包導入,例如,mywheel - 1.0 - py2.py3 any.whl——沒有。在入口點文本框中,輸入函數調用時開始。點擊添加依賴庫添加庫才能運行這個任務。

  • 印度生物技術部:看在磚使用印度生物技術部轉換工作對於一個詳細示例如何配置一個印度生物技術部的任務。

運行工作

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

  2. 選擇一份工作並單擊運行選項卡。您可以運行工作運行後立即或調度的工作。

如果一個或多個任務的工作與多個任務不成功,您可以重新運行失敗的任務的一部分。看到重新運行失敗,跳過任務

立即運行工作

立即運行任務,點擊現在運行按鈕

提示

您可以執行測試運行工作的任務通過點擊一個筆記本現在運行。如果你需要更改筆記本,點擊現在運行後再編輯筆記本將自動運行新版本的筆記本。

用不同的參數運行工作

您可以使用現在有了不同的參數運行重新運行工作與不同的參數或不同的現有參數的值。

  1. 點擊藍色向下插入符號旁邊現在運行並選擇現在有了不同的參數運行或者,在活躍的運行表,點擊現在有了不同的參數運行。輸入新的參數取決於任務的類型。

    • 筆記本:您可以輸入參數鍵值或一個JSON對象。提供的參數與默認參數觸發運行。您可以使用該對話框中設置的值小部件

    • JARspark-submit:您可以輸入一個參數列表或一個JSON文檔。如果你刪除鍵,使用默認參數。你也可以加入任務參數變量運行。

  2. 點擊運行

任務運行曆史觀

查看運行的曆史任務,包括成功和失敗:

  1. 點擊任務上工作運行細節頁麵。的任務運行細節頁麵出現。

  2. 選擇任務運行的運行曆史下拉菜單。

視圖的工作

點擊工作圖標工作流在側邊欄。工作列表中出現。定義的工作頁麵列出了所有工作,集群定義,計劃,如果有的話,和最後一次運行的結果。

請注意

如果你有增加工作的限製支持這個工作空間,工作列表中僅顯示25工作提高頁麵加載時間。使用左右箭頭通過工作的完整列表頁麵。

您可以過濾工作的工作列表:

  • 使用關鍵字。如果你有增加就業限製功能支持該工作區,隻支持通過關鍵詞搜索的名稱、ID、工作和工作標記字段。

  • 隻選擇你自己的工作。

  • 選擇所有工作你有權限訪問。這種過濾要求工作訪問控製啟用。

  • 使用標簽。尋找一個標簽創建隻有一個鍵,在搜索框輸入的關鍵。搜索鍵和值創建一個標簽,你可以搜索鍵,值,或鍵和值。例如,對於一個標簽的關鍵部門和價值金融,你可以搜索部門金融找到匹配的工作。搜索的鍵和值,輸入鍵和值冒號隔開;例如,部門:財務

您也可以點擊任意列標題進行排序的列表工作(上升或下降)這一列。增加就業限製功能啟用時,你可以隻的名字,工作ID,或創建通過。默認排序的名字以升序排序。

查看運行工作

您可以查看當前運行的列表和最近完成了工作你可以訪問,包括運行開始由外部編製工具,如Apache氣流或Azure數據工廠。查看最近的工作列表:

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

  2. 的名字列,單擊工作名稱。的運行標簽出現的矩陣和列表視圖積極運行和運行完成。

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

運行總時間矩陣的行顯示的總運行時間和運行的狀態。查看運行的詳細信息,包括開始時間、持續時間、和地位,懸停在酒吧運行總時間行。

每個單元的任務行代表一個任務和相應的任務的狀態。查看每個任務的細節,包括開始時間、持續時間、集群和地位,懸停在細胞上的任務。

工作和任務跑酒吧的顏色表示的狀態運行。成功的運行是綠色的,不成功的運行是紅色的,和跳過運行是粉紅色的。個人工作的高度和任務跑酒吧提供了一個視覺指示的運行時間。

運行列表視圖顯示:

  • 的開始時間。

  • 運行標識符。

  • 運行是否觸發的工作安排或一個API請求,或手動開始。

  • 當前運行的時間工作,或者一個完整運行的總運行時間。

  • 火花日誌的鏈接。

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

改變列顯示在列表視圖,點擊並選擇或取消選擇列。

查看細節的工作運行的運行,點擊鏈接開始時間列在列表視圖。查看最近的成功運行的細節工作,點擊去最近的成功運行

磚保持你的工作運行的曆史長達60天。如果你需要保持工作運行時,磚之前建議您導出結果的有效期。有關更多信息,請參見出口工作運行結果

查看工作運行細節

工作運行細節頁麵包含工作產出和日誌的鏈接,包括每個任務的成功或失敗的信息工作中運行。你可以訪問工作運行的細節運行選項卡。查看工作運行的細節運行選項卡中,單擊該鏈接的運行開始時間列在列表視圖。回到運行點擊選項卡的工作工作ID價值。

如果工作包含多個任務,點擊任務查看任務運行細節,包括:

  • 集群的任務

    • 任務的火花UI

    • 日誌的任務

    • 指標的任務

單擊工作ID返回值運行選項卡。

查看最近的工作運行

您可以查看當前的運行在一個工作區和最近完成了運行工作訪問,包括運行開始由外部編製工具,如Apache氣流或Azure數據工廠。查看最近的工作列表:

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

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

工作運行列表顯示:

  • 的開始時間。

    • 的名字與運行相關的工作。

    • 工作運行的用戶名。

    • 運行是否觸發的工作安排或一個API請求,或手動開始。

    • 當前運行的時間工作,或者一個完整運行的總運行時間。

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

    • 任何參數的運行。

查看工作運行細節,單擊鏈接開始時間列的運行。查看工作細節,單擊工作名稱工作列。

出口工作運行結果

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

出口筆記本運行結果

你可以持續工作運行通過出口他們的結果。對於筆記本的工作運行,您可以出口稍後可以呈現的筆記本進口到你的磚工作區。

出口筆記本運行結果與單個任務:找工作

  1. 在工作中細節頁麵,單擊查看詳細信息鏈接的運行運行列的完成運行60天(過去)表。

  2. 點擊導出到HTML

出口筆記本運行結果與多個工作任務:

  1. 在工作中細節頁麵,單擊查看詳細信息鏈接的運行運行列的完成運行60天(過去)表。

  2. 點擊出口筆記本電腦的任務。

  3. 點擊導出到HTML

出口工作運行日誌

您還可以導出日誌對你的工作運行。你可以設置你的工作自動交付DBFS通過工作日誌API。看到new_cluster.cluster_log_conf對象傳遞給請求主體創建一個新工作操作(帖子/ /創建工作API)的工作。

編輯的工作

一些配置選項是可用的工作,個人和其他選項可用任務。例如,可以設置最大並發運行的工作,同時為每個任務參數必須定義。

改變配置工作:

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

  2. 的名字列,單擊工作名稱。

側板顯示工作細節。你可以改變引發了工作,集群配置,通知並發運行的最大數量,添加或更改標簽。如果工作訪問控製啟用,您還可以編輯的工作權限。

標簽

添加標簽或鍵:值屬性來你的工作,你可以添加標簽當你編輯的工作。您可以使用標簽過濾工作工作列表;例如,您可以使用一個部門標簽過濾所有屬於一個特定的部門工作。

請注意

因為工作標簽不是設計來存儲敏感信息,如個人身份信息或密碼,磚建議使用標簽不敏感的值。

標簽也傳播到工作集群運行時創建工作,允許您使用標簽與您現有的集群監控

添加或編輯標簽,點擊+標簽工作細節側板。您可以添加標簽鍵和值,或一個標簽。添加一個標簽,輸入的標簽關鍵場和離開價值字段是空的。

集群

看到與集群相關的任務,懸停在集群在側板。修改所有相關的集群配置任務,點擊配置在集群。配置一個新的集群對於所有相關的任務,點擊交換在集群。

訪問控製的工作

工作訪問控製使所有者和管理員授予細粒度的權限在自己的工作上。工作所有者可以選擇其他用戶或組可以查看工作的結果。業主也可以選擇誰能管理他們的工作運行(現在取消跑權限)。

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

最大並發運行

的最大數量的並行運行工作。磚跳過運行如果工作已經達到最大數量的活躍當試圖啟動一個新的運行運行。設置這個值高於默認的1並發執行多個運行相同的作業。這是有用的,例如,如果你頻繁觸發你的工作在一個計劃,希望允許連續運行相互重疊,或你想要觸發多個運行不同的輸入參數。

編輯一個任務

設置任務配置選項:

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

  2. 的名字列,單擊工作名稱。

  3. 單擊任務選項卡。

任務依賴關係

您可以定義的順序執行的任務的工作使用取決於下拉菜單。你可以設置這個字段中的一個或多個任務的工作。

編輯任務依賴關係

請注意

取決於如果工作不可見隻包含一個任務。

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

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

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

  • 最後,Task 4取決於Task 2和Task 3成功完成。

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

任務依賴關係示例流

單獨的任務配置選項

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

在本節中:

集群

配置一個任務運行的集群,單擊集群下拉菜單。您可以編輯共享集群的工作,但你不能刪除共享集群如果仍然使用的其他任務。

了解更多關於選擇和配置集群運行任務,明白了集群配置建議

依賴庫

之前依賴庫將被安裝在集群上運行的任務。必須設置所有任務的依賴關係,以確保他們是安裝在運行開始前。按照建議庫的依賴關係用於指定依賴項。

超時

最大完工時間的工作或任務。如果工作或任務沒有完成在這個時間,磚設置其狀態為“超時”。

重試

政策決定時,多少次失敗重試。設置任務的重試,點擊高級選項並選擇編輯重試策略。重試間隔之間的毫秒計算開始的失敗和隨後的重試跑。

請注意

如果您配置都超時重試,超時適用於每個重試。

克隆一個工作

您可以快速創建一個新的工作通過克隆現有工作。克隆的工作創造了一個相同的拷貝工作,除了ID的工作。在工作的頁麵中,點擊更多的…旁邊的名字並選擇的工作克隆從下拉菜單中。

克隆一個任務

你可以快速創建一個新的任務通過克隆現有的任務:

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

  2. 克隆選擇任務。

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

刪除一個工作

刪除一個工作,在工作的頁麵中,點擊更多的…旁邊的名字並選擇的工作刪除從下拉菜單中。

刪除一個任務

刪除一個任務:

  1. 單擊任務選項卡。

  2. 選擇要刪除的任務。

  3. 點擊喬布斯垂直省略並選擇刪除任務

複製一個任務路徑

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

  1. 單擊任務選項卡。

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

  3. 點擊工作副本圖標接下來的任務路徑複製路徑到剪貼板。

最佳實踐

集群配置建議

集群配置實施工作時是很重要的。以下提供一般指導選擇和配置工作集群,其次是對特定的工作類型的建議。

使用共享工作的集群

優化資源使用與工作協調多個任務,使用共享集群的工作。共享工作集群允許多個任務在同一工作運行集群重用。您可以使用一個集群運行所有工作任務的一部分工作,或多個工作為特定的工作負載集群優化。使用一個共享工作集群:

  1. 選擇新工作的集群當您創建一個任務並完成集群配置

  2. 選擇新的集群將任務添加到工作時,或者創建一個新的集群工作。任何集群配置當您選擇新工作的集群可用於任何任務的工作。

共享集群是局限於一個單一的工作運行工作,其他工作或運行,不能使用相同的工作。

圖書館不能宣布在一個共享的集群配置工作。你必須在任務中添加依賴庫的設置。

為你的工作選擇正確的集群類型

  • 新工作的集群是一個作業或任務運行專用集群。創建一個集群共享工作,開始當第一個任務使用集群的開始和終止後使用集群完成最後的任務。集群不是閑置但終止時終止後才使用它已經完成了所有的任務。如果集群共享工作失敗或終止所有任務完成之前,創建一個新的集群。創建一個集群範圍的一個任務在任務開始和終止時,開始當任務完成。在生產中,磚建議使用新的共享或任務範圍集群,這樣每個作業或任務運行在一個完全隔離環境。

  • 一個新的集群上運行一個任務時,任務被視為數據工程(任務)工作負載,任務工作量定價。當你現有的通用集群上運行一個任務,任務視為一個數據分析(通用)工作負載,通用工作負載的定價。

  • 如果你選擇了一個終止現有的集群和所有者擁有的工作可以重新啟動許可,磚開始集群調度運行工作時。

  • 現有的集群最適合更新等任務指示板定期。

使用池減少集群開始時間

減少集群新工作開始時間,創建一個和配置工作的集群使用池。

筆記本的工作技巧

筆記本電池總產量(合並後輸出的筆記本電池)20 mb的大小限製。此外,單個細胞輸出8 mb大小限製。如果電池總產量超過20 mb,或者單個細胞的輸出大於8 mb,運行是取消,標記為失敗。

流媒體的任務

火花流工作不應該最大並發運行設置為大於1。流工作應該設置為使用cron運行表達式“*****?”(每分鍾)。

由於連續流運行任務,這應該是最後一項任務的工作。

JAR的工作

了解更多關於包裝您的代碼在一個JAR和創建工作,使用JAR,明白了用一罐磚的工作

運行時JAR的工作,請記住以下幾點:

輸出大小限製

工作產出,比如日誌輸出發送到stdout, 20 mb的大小限製。如果總輸出有一個更大的規模,是取消,標記為失敗。

為了避免遇到這個限製,可以防止stdout從司機磚通過設置回來spark.databricks.driver.disableScalaOutput火花配置真正的。默認情況下,標誌值。國旗控製單元輸出Scala JAR和Scala筆記本工作。如果啟用了國旗,引發不工作執行結果返回給客戶機。國旗並不影響數據集群中所寫的日誌文件。設置這個標誌建議隻對工作集群JAR的工作,因為它將禁用筆記本的結果。

使用共享SparkContext

因為磚是一個托管服務,一些代碼變更可能是必要的,以確保您的Apache火花工作正確運行。JAR程序必須使用共享工作SparkContextAPI來獲得SparkContext。因為磚初始化SparkContext,程序調用SparkContext ()將會失敗。得到SparkContext,隻使用共享SparkContext由磚:

瓦爾goodSparkContext=SparkContextgetOrCreate()瓦爾goodSparkSession=SparkSession構建器()。getOrCreate()

還有幾種方法你應該避免在使用共享SparkContext

  • 不叫SparkContext.stop ()

  • 不叫system . exit (0)sc.stop ()在你的結束主要程序。這可能會導致未定義行為。

使用終於嚐試塊清理工作

考慮一個JAR,由兩部分組成:

  • jobBody ()它包含的主要工作的一部分。

  • jobCleanup ()後要執行jobBody ()是否該函數成功返回一個例外。

作為一個例子,jobBody ()你可以創建表,可以使用嗎jobCleanup ()放棄這些表。

安全的方法確保清理方法是將一個終於嚐試在代碼塊:

試一試{jobBody()}最後{jobCleanup()}

不應該試著清理使用sys.addShutdownHook (jobCleanup)或者下麵的代碼:

瓦爾cleanupThread=線程{覆蓋def運行=jobCleanup()}運行時getRuntimeaddShutdownHook(cleanupThread)

由於火花容器管理的生命周期在磚,關閉鉤子不可靠地運行。

配置罐的工作參數

你通過參數JAR就業一個JSON字符串數組。看到spark_jar_task對象傳遞給請求主體創建一個新工作操作(帖子/ /創建工作API)的工作。要訪問這些參數,檢查字符串數組傳遞給你主要函數。

庫的依賴關係

火花驅動程序有一定的庫依賴關係,不能覆蓋。這些庫優先於你的任何庫衝突。

讓司機庫依賴關係的完整列表,在筆記本上運行以下命令一群相同的火花版本(或集群與司機你想檢查)。

% sh ls /磚/ jar

管理庫依賴關係

一個好的經驗法則在處理庫依賴關係在創建工作的罐子是火花和Hadoop列表提供依賴關係。在Maven,添加火花和Hadoop提供依賴項,如以下示例所示:

<依賴>< groupId >org.apache.spark< / groupId >< artifactId >spark-core_2.11< / artifactId ><版本>tripwire> < /版本<範圍>提供< / >範圍< / >的依賴<依賴>< groupId >org.apache.hadoop< / groupId >< artifactId >hadoop核心< / artifactId ><版本>1.2.1 "> < /版本<範圍>提供< / >範圍< / >的依賴

sbt,添加火花和Hadoop提供依賴項,如以下示例所示:

libraryDependencies+ =“org.apache.spark”% %“spark-core”%“tripwire”%“提供”libraryDependencies+ =“org.apache.hadoop”% %“hadoop核心”%“1.2.1”%“提供”

提示

指定正確的Scala版本對你依賴基於運行的版本。