創建、運行和管理數據磚的工作
本文詳細介紹如何創建、編輯、運行和監控磚工作使用的UI。學習使用磚CLI的創建和運行工作,明白了喬布斯CLI。使用API的工作了解,明白了喬布斯API 2.1。
創建您的第一個工作流與磚的工作,看到快速入門。
重要的
你隻能創造就業數據科學與工程工作區或一個機器學習的工作區。
1000個並發任務工作空間是有限的。一個
429年太許多請求
當你返回請求的響應不能立即開始運行。就業人數工作區可以創建在10000年一個小時是有限的(包括”提交”)。REST API創建的這個限製也會影響就業和筆記本工作流。
創建一個工作
做下列之一:
點擊工作流在側邊欄,然後單擊。
在側邊欄中,單擊新並選擇工作。
的任務選項卡創建任務對話框出現。
取代添加一個名稱為你的工作…對你的工作名稱。
輸入一個名稱的任務任務名稱字段。
在類型下拉菜單中,選擇任務運行的類型。看到任務類型的選擇。
配置任務運行的集群。在集群下拉菜單,選擇新工作的集群或現有通用的集群。
新工作的集群:點擊編輯在集群下拉菜單並完成集群配置。
現有通用的集群:選擇一個現有的集群中集群下拉菜單。在新頁麵中打開集群,單擊圖標右邊的集群名稱和描述。
了解更多關於選擇和配置集群運行任務,明白了集群配置建議。
添加依賴庫,點擊+添加旁邊依賴庫。看到依賴庫。
你可以為你的任務傳遞參數。每個任務類型有不同的要求,格式和傳遞參數。
筆記本:點擊添加並指定每個參數的鍵和值傳遞給任務。你可以覆蓋或添加額外的參數手動運行一個任務使用用不同的參數運行工作選擇。參數設置的值筆記本電腦部件指定的關鍵參數。使用任務參數變量通過一組有限的動態值作為參數值的一部分。
JAR:使用json格式的字符串來指定參數的數組。這些字符串作為參數傳遞給主類的主要方法。看到配置罐的工作參數。
火花提交任務:參數指定為一個json格式的字符串數組。符合Apache火花spark-submit慣例,參數在JAR的路徑傳遞給主類的主要方法。
Python腳本:使用json格式的字符串來指定參數的數組。這些字符串作為參數傳遞,可以解析使用argparse在Python模塊。
Python輪:在參數下拉菜單,選擇位置參數輸入參數作為json格式的字符串數組,或選擇關鍵字參數>添加進入每個參數的鍵和值。這兩個位置參數和關鍵字參數都作為命令行參數傳遞給Python輪任務。
為任務開始有選擇地接收通知,成功,或失敗,點擊+添加旁邊電子郵件。通知發送初始任務失敗和任何後續重試。
可選配置重試策略的任務,點擊+添加旁邊重試。看到重試。
可選配置的超時任務,點擊+添加旁邊在幾秒鍾內超時。看到超時。
點擊創建。
創建第一個任務後,您可以配置工作水平設置,如通知、工作觸發器和權限。看到編輯的工作。
添加另一個任務,點擊在DAG視圖中。一個共享的集群選項如果您配置了一個提供新工作的集群前一個任務。您還可以配置一個集群為每個任務當您創建或編輯一個任務。了解更多關於選擇和配置集群運行任務,明白了集群配置建議。
任務類型的選擇
以下是可以添加到你的磚工作任務類型和可用的選項不同的任務類型:
筆記本:在源下拉菜單,選擇一個筆記本的位置;要麼工作空間對於一個筆記本或位於一個磚工作區文件夾Git提供者筆記本位於一個偏遠的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 / /輸出例子/”]
Python腳本:在源下拉,選擇一個Python腳本的位置工作空間腳本在本地工作區,或DBFS / S3一個腳本位於DBFS和雲存儲。在路徑文本框中,輸入Python腳本的路徑:
工作空間:在選擇Python文件並單擊對話框中,瀏覽到Python腳本確認。必須在您的腳本磚回購。
DBFS:輸入一個Python腳本的URI DBFS和雲存儲;例如,
dbfs: / FileStore / myscript.py
。Git提供者:點擊編輯並輸入Git存儲庫信息。看到使用Python代碼從一個遠程Git存儲庫。
三角洲生活表管道:在管道下拉菜單,選擇一個已存在的三角洲生活表管道。
重要的
你隻可以使用管道的觸發管道的任務。不支持連續管道的工作任務。更多地了解和連續管道引起的,看到的連續與管道執行觸發。
Python輪:在包名文本框,輸入包導入,例如,
mywheel - 1.0 - py2.py3 any.whl——沒有
。在入口點文本框中,輸入函數調用時開始。點擊添加下依賴庫添加庫才能運行這個任務。SQL:在SQL任務下拉菜單,選擇查詢,指示板,或警報。
請注意
的SQL任務是在公共預覽。
的SQLSQL和任務需要磚serverless或支持SQL倉庫。
查詢:在SQL查詢下拉菜單中,選擇查詢時所執行的任務。在SQL倉庫下拉菜單,選擇一個serverless或支持SQL倉庫運行的任務。
指示板:在SQL儀表板下拉菜單,選擇一個儀表盤更新任務運行時。在SQL倉庫下拉菜單,選擇一個serverless或支持SQL倉庫運行的任務。
警報:在SQL警告下拉菜單中,選擇警報觸發進行評估。在SQL倉庫下拉菜單,選擇一個serverless或支持SQL倉庫運行的任務。
印度生物技術部:看在磚使用印度生物技術部轉換工作對於一個詳細示例如何配置一個印度生物技術部的任務。
運行工作
點擊工作流在側邊欄。
選擇一份工作並單擊運行選項卡。您可以運行工作運行後立即或調度的工作。
如果一個或多個任務的工作與多個任務不成功,您可以重新運行失敗的任務的一部分。看到重新運行失敗,跳過任務。
安排一個工作
定義一個這份工作時間表:
點擊添加觸發器在工作細節麵板並選擇計劃在觸發類型。
指定時間、起始時間和時區。可選的選擇顯示Cron語法複選框來顯示和編輯的時間表石英Cron語法。
請注意
磚執行之間的最小間隔10秒的後續運行引發的時間表工作不管秒cron配置的表達式。
你可以選擇時區,觀察夏令時或UTC。如果你選擇一個區,觀察夏令時,每小時的工作將被忽略,也可能出現不火的一兩個小時當夏令時的開始或結束。運行在每小時(絕對時間),選擇UTC。
作業調度器不是用於低延遲的工作。由於網絡或雲的問題,工作運行偶爾會被推遲幾分鍾。在這些情況下,安排工作要立即運行在服務可用性。
點擊保存。
你也可以安排一個筆記本直接工作筆記本用戶界麵。
當得到新的文件運行工作
觸發工作運行當新的文件到一個外部位置,使用文件到達觸發。
視圖的工作
點擊工作流在側邊欄。工作列表中出現。定義的工作頁麵列出了所有工作,集群定義,計劃,如果有的話,和最後一次運行的結果。
請注意
如果你有增加工作的限製支持這個工作空間,工作列表中僅顯示25工作提高頁麵加載時間。使用左右箭頭通過工作的完整列表頁麵。
您可以過濾工作的工作列表:
使用關鍵字。如果你有增加就業限製功能支持該工作區,隻支持通過關鍵詞搜索的名稱、ID、工作和工作標記字段。
隻選擇你自己的工作。
選擇所有工作你有權限訪問。這種過濾要求工作訪問控製啟用。
使用標簽。尋找一個標簽創建隻有一個鍵,在搜索框輸入的關鍵。搜索鍵和值創建一個標簽,你可以搜索鍵,值,或鍵和值。例如,對於一個標簽的關鍵
部門
和價值金融
,你可以搜索部門
或金融
找到匹配的工作。搜索的鍵和值,輸入鍵和值冒號隔開;例如,部門:財務
。
您也可以點擊任意列標題進行排序的列表工作(上升或下降)這一列。增加就業限製功能啟用時,你可以隻的名字
,工作ID
,或創建通過
。默認排序的名字
以升序排序。
查看運行工作
您可以查看當前運行的列表和最近完成了工作你可以訪問,包括運行開始由外部編製工具,如Apache氣流或Azure數據工廠。查看最近的工作列表:
點擊工作流在側邊欄。
在的名字列,單擊工作名稱。的運行標簽出現的矩陣和列表視圖積極運行和運行完成。
矩陣視圖顯示運行的曆史工作,包括每個工作任務。
的運行總時間矩陣的行顯示的總運行時間和運行的狀態。查看運行的詳細信息,包括開始時間、持續時間、和地位,懸停在酒吧運行總時間行。
每個單元的任務行代表一個任務和相應的任務的狀態。查看每個任務的細節,包括開始時間、持續時間、集群和地位,懸停在細胞上的任務。
工作和任務跑酒吧的顏色表示的狀態運行。成功的運行是綠色的,不成功的運行是紅色的,和跳過運行是粉紅色的。個人工作的高度和任務跑酒吧提供了一個視覺指示的運行時間。
運行列表視圖顯示:
的開始時間。
運行標識符。
運行是否觸發的工作安排或一個API請求,或手動開始。
當前運行的時間工作,或者一個完整運行的總運行時間。
火花日誌的鏈接。
運行的狀態
等待
,運行
,跳過
,成功
,失敗的
,終止
,終止
,內部錯誤
,定時出
,取消了
,取消
,或等待為重試
。
改變列顯示在列表視圖,點擊列並選擇或取消選擇列。
查看細節的工作運行的運行,點擊鏈接開始時間列在列表視圖。查看最近的成功運行的細節工作,點擊去最近的成功運行。
磚保持你的工作運行的曆史長達60天。如果你需要保持工作運行時,磚之前建議您導出結果的有效期。有關更多信息,請參見視圖血統信息工作。
查看工作運行細節
工作運行細節頁麵包含工作產出和日誌的鏈接,包括每個任務的成功或失敗的信息工作中運行。你可以訪問工作運行的細節運行選項卡。查看工作運行的細節運行選項卡中,單擊該鏈接的運行開始時間列在列表視圖。回到運行點擊選項卡的工作工作ID價值。
如果工作包含多個任務,點擊任務查看任務運行細節,包括:
集群的任務
任務的火花UI
日誌的任務
指標的任務
單擊工作ID返回值運行選項卡。
查看最近的工作運行
您可以查看當前的運行在一個工作區和最近完成了運行工作訪問,包括運行開始由外部編製工具,如Apache氣流或Azure數據工廠。查看最近的工作列表:
點擊工作流在側邊欄。工作列表中出現。
單擊工作運行選項卡顯示工作列表。
的工作運行列表顯示:
的開始時間。
的名字與運行相關的工作。
工作運行的用戶名。
運行是否觸發的工作安排或一個API請求,或手動開始。
當前運行的時間工作,或者一個完整運行的總運行時間。
運行的狀態
等待
,運行
,跳過
,成功
,失敗的
,終止
,終止
,內部錯誤
,定時出
,取消了
,取消
,或等待為重試
。任何參數的運行。
查看工作運行細節,單擊鏈接開始時間列的運行。查看工作細節,單擊工作名稱工作列。
視圖血統信息工作
如果啟用了統一目錄在您的工作空間,您可以查看血統信息對於任何統一編目表中您的工作流。如果血統信息可供您的工作流,您將會看到一個鏈接中的上遊和下遊的計算表工作細節你的工作小組,工作運行細節小組工作運行,或任務運行細節麵板為任務運行。點擊鏈接來顯示表的列表。單擊表查看詳細信息數據瀏覽。
出口工作運行結果
您可以導出筆記本運行結果對所有工作類型和工作運行日誌。
出口筆記本運行結果
你可以持續工作運行通過出口他們的結果。對於筆記本的工作運行,您可以出口稍後可以呈現的筆記本進口到你的磚工作區。
出口筆記本運行結果與單個任務:找工作
在工作中細節頁麵,單擊查看詳細信息鏈接的運行運行列的完成運行60天(過去)表。
點擊導出到HTML。
出口筆記本運行結果與多個工作任務:
在工作中細節頁麵,單擊查看詳細信息鏈接的運行運行列的完成運行60天(過去)表。
點擊出口筆記本電腦的任務。
點擊導出到HTML。
出口工作運行日誌
您還可以導出日誌對你的工作運行。你可以設置你的工作自動交付通過工作日誌DBFS或S3 API。看到new_cluster.cluster_log_conf
對象傳遞給請求主體創建一個新工作操作(帖子/ /創建工作
API)的工作。
編輯的工作
一些配置選項是可用的工作,個人和其他選項可用任務。例如,可以設置最大並發運行的工作,同時為每個任務參數必須定義。
改變配置工作:
點擊工作流在側邊欄。
在的名字列,單擊工作名稱。
側板顯示工作細節。你可以改變引發了工作,集群配置,通知並發運行的最大數量,添加或更改標簽。如果工作訪問控製啟用,您還可以編輯的工作權限。
標簽
添加標簽或鍵:值屬性來你的工作,你可以添加標簽當你編輯的工作。您可以使用標簽過濾工作工作列表;例如,您可以使用一個部門
標簽過濾所有屬於一個特定的部門工作。
請注意
因為工作標簽不是設計來存儲敏感信息,如個人身份信息或密碼,磚建議使用標簽不敏感的值。
標簽也傳播到工作集群運行時創建工作,允許您使用標簽與您現有的集群監控。
添加或編輯標簽,點擊+標簽在工作細節側板。您可以添加標簽鍵和值,或一個標簽。添加一個標簽,輸入的標簽關鍵場和離開價值字段是空的。
訪問控製的工作
工作訪問控製使所有者和管理員授予細粒度的權限在自己的工作上。工作所有者可以選擇其他用戶或組可以查看工作的結果。業主也可以選擇誰能管理他們的工作運行(現在取消跑權限)。
看到工作訪問控製獲取詳細信息。
編輯一個任務
設置任務配置選項:
點擊工作流在側邊欄。
在的名字列,單擊工作名稱。
單擊任務選項卡。
任務依賴關係
您可以定義的順序執行的任務的工作使用取決於下拉菜單。你可以設置這個字段中的一個或多個任務的工作。
請注意
取決於如果工作不可見隻包含一個任務。
配置任務依賴關係創建一個有向無環圖(DAG)的任務執行,代表執行順序的一種常見方法作業調度器。例如,考慮以下四個任務組成的工作:
任務1根,不依賴於任何其他任務。
Task 2和Task 3取決於任務1完成。
最後,Task 4取決於Task 2和Task 3成功完成。
磚上遊運行任務在運行下遊任務之前,盡可能多的在並行運行。下麵的圖表說明了處理這些任務的順序:
單獨的任務配置選項
單個任務有以下配置選項:
任務參數變量
你可以通過模板變量到工作任務的一部分任務的參數。這些變量是在工作任務運行時替換為適當的值。您可以使用任務參數值通過上下文對一項工作運行,比如運行ID或工作的開始時間。
當一份工作,任務參數變量替換雙花括號包圍和附加到一個可選的字符串值作為價值的一部分。例如,傳遞一個參數命名MyJobId
的價值my-job-6
對於任何運行的任務ID 6中,添加以下任務參數:
{“MyJobID”:“我的工作- {{job_id}}”}
雙花括號的內容不是評為表達式,所以你不能做double-curly括號內操作或功能。空白不是剝奪了在花括號裏,{{job_id}}
不會被評估。
下麵的任務參數變量支持:
變量 |
描述 |
示例值 |
---|---|---|
|
惟一標識符分配給的工作 |
1276862 |
|
惟一標識符分配給一個任務運行 |
3447843 |
|
日期一個任務開始運行。在UTC格式是yyyy-MM-dd時區。 |
2021-02-15 |
|
運行的開始執行的時間戳在集群創建和準備好了。格式是毫秒,因為UNIX紀元UTC時區,返回的 |
1551622063030 |
|
重試的次數已經試圖運行一個任務如果第一次嚐試失敗。第一次嚐試的值為0和增量重試。 |
0 |
|
惟一標識符分配給多個任務的運行工作。 |
3447835 |
|
的惟一名稱分配給一個任務在多個任務的一部分工作。 |
“clean_raw_data” |
你可以設置這些變量與任何任務時創建一個工作,編輯的工作,或用不同的參數運行工作。
你也可以在工作任務之間傳遞參數任務值。看到磚工作任務之間共享信息。
超時
最大完工時間的工作或任務。如果工作或任務沒有完成在這個時間,磚設置其狀態為“超時”。
最佳實踐
集群配置建議
集群配置實施工作時是很重要的。以下提供一般指導選擇和配置工作集群,其次是對特定的工作類型的建議。
為你的工作選擇正確的集群類型
新工作的集群是一個作業或任務運行專用集群。創建一個集群共享工作,開始當第一個任務使用集群的開始和終止後使用集群完成最後的任務。集群不是閑置但終止時終止後才使用它已經完成了所有的任務。如果集群共享工作失敗或終止所有任務完成之前,創建一個新的集群。創建一個集群範圍的一個任務在任務開始和終止時,開始當任務完成。在生產中,磚建議使用新的共享或任務範圍集群,這樣每個作業或任務運行在一個完全隔離環境。
一個新的集群上運行一個任務時,任務被視為數據工程(任務)工作負載,任務工作量定價。當你現有的通用集群上運行一個任務,任務視為一個數據分析(通用)工作負載,通用工作負載的定價。
如果你選擇了一個終止現有的集群和所有者擁有的工作可以重新啟動許可,磚開始集群調度運行工作時。
現有的集群最適合更新等任務指示板定期。
使用池減少集群開始時間
減少集群新工作開始時間,創建一個池和配置工作的集群使用池。
筆記本的工作技巧
筆記本電池總產量(合並後輸出的筆記本電池)20 mb的大小限製。此外,單個細胞輸出8 mb大小限製。如果電池總產量超過20 mb,或者單個細胞的輸出大於8 mb,運行是取消,標記為失敗。
如果你需要幫助找到細胞接近或超出了限製,筆記本和一個通用的集群運行和使用筆記本自動保存技術。
JAR的工作
了解更多關於包裝您的代碼在一個JAR和創建工作,使用JAR,明白了用一罐磚的工作。
運行時JAR的工作,請記住以下幾點:
輸出大小限製
工作產出,比如日誌輸出發送到stdout, 20 mb的大小限製。如果總輸出有一個更大的規模,是取消,標記為失敗。
為了避免遇到這個限製,可以防止stdout從司機磚通過設置回來spark.databricks.driver.disableScalaOutput
火花配置真正的
。默認情況下,標誌值假
。國旗控製單元輸出Scala JAR和Scala筆記本工作。如果啟用了國旗,引發不工作執行結果返回給客戶機。國旗並不影響數據集群中所寫的日誌文件。設置這個標誌建議隻對工作集群JAR的工作,因為它將禁用筆記本的結果。
使用終於嚐試
塊清理工作
考慮一個JAR,由兩部分組成:
jobBody ()
它包含的主要工作的一部分。jobCleanup ()
後要執行jobBody ()
是否該函數成功返回一個例外。
作為一個例子,jobBody ()
你可以創建表,可以使用嗎jobCleanup ()
放棄這些表。
安全的方法確保清理方法是將一個終於嚐試
在代碼塊:
試一試{jobBody()}最後{jobCleanup()}
你不應該試著清理使用sys.addShutdownHook (jobCleanup)
或者下麵的代碼:
瓦爾cleanupThread=新線程{覆蓋def運行=jobCleanup()}運行時。getRuntime。addShutdownHook(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版本對你依賴基於運行的版本。