喬布斯API更新

你現在可以安排與磚多個任務工作。這篇文章細節的變化喬布斯API支持多個任務,並提供就業指導,幫助您更新您的現有API客戶端使用這個新特性。

磚推薦就業的API 2.1 API腳本和客戶,尤其是在使用多個任務的工作。

這篇文章是指工作定義了一個任務單一任務的格式與多個任務定義和工作多任務的格式

API 2.0和2.1現在支持工作更新請求。使用更新改變現有的工作而不是請求重置請求之間最小化更改單任務操作格式工作和多任務的形式工作。

API的變化

工作現在定義了一個APITaskSettings對象捕捉設置每個任務的工作。對於多任務格式工作,任務字段的數組TaskSettings數據結構,包含在JobSettings對象。某些領域以前的一部分JobSettings現在多任務的任務設置格式的工作的一部分。JobSettings也包括更新嗎格式字段。的格式字段顯示的格式,是工作字符串值設置為SINGLE_TASKMULTI_TASK

您需要更新現有API客戶這些變化對多任務JobSettings格式的工作。看到API客戶機指南更多信息需要更改。

喬布斯API 2.1支持多任務的格式。所有API 2.1請求必須符合多任務格式和響應的結構在多任務的形式。新功能發布API 2.1。

喬布斯API 2.0更新一個額外的字段格式支持多任務工作。除特殊說明外,本文檔中的示例使用API 2.0。然而,磚建議2.1 API的新的和現有的API腳本和客戶。

一個示例JSON文檔代表一個多任務對API 2.0和2.1格式的工作:

{“job_id”:53,“設置”:{“名稱”:“與多個任務工作”,“email_notifications”:{},“timeout_seconds”:0,“max_concurrent_runs”:1,“任務”:({“task_key”:“clean_data”,“描述”:“清潔和準備數據”,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/clean-data”},“existing_cluster_id”:“1201 -我的集群”,“max_retries”:3,“min_retry_interval_millis”:0,“retry_on_timeout”:真正的,“timeout_seconds”:3600年,“email_notifications”:{}},{“task_key”:“analyze_data”,“描述”:“執行的分析數據,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/analyze-data”},“depends_on”:({“task_key”:“clean_data”}),“existing_cluster_id”:“1201 -我的集群”,“max_retries”:3,“min_retry_interval_millis”:0,“retry_on_timeout”:真正的,“timeout_seconds”:3600年,“email_notifications”:{}}),“格式”:“MULTI_TASK”},“created_time”:1625841911296,“creator_user_name”:“user@m.eheci.com”,“run_as_user_name”:“user@m.eheci.com”}

喬布斯API 2.1支持的配置任務水平集群或一個或多個共享工作集群:

  • 創建一個任務水平集群任務的開始和終止時,開始時,任務完成。

  • 共享工作集群允許多個任務在同一工作使用集群。創建集群,開始當第一個任務使用集群的開始和終止使用集群完成最後一個任務後。集群共享工作不是閑置但終止時終止後才使用它完成所有任務。多個non-dependent任務共享集群可以在同一時間。如果集群共享工作失敗或終止所有任務完成之前,創建一個新的集群。

配置共享工作的集群,包括JobCluster數組的JobSettings對象。您可以指定最多每工作100集群。下麵是一個API的一個例子2.1響應工作配置兩個共享集群:

請注意

如果一個任務庫依賴關係,必須配置庫中任務字段設置;圖書館不能配置在一個共享的集群配置工作。在以下的示例中,字段的配置ingest_orders任務說明規範庫的依賴關係。

{“job_id”:53,“設置”:{“名稱”:“與多個任務工作”,“email_notifications”:{},“timeout_seconds”:0,“max_concurrent_runs”:1,“job_clusters”:({“job_cluster_key”:“default_cluster”,“new_cluster”:{“spark_version”:“7.3.x-scala2.12”,“node_type_id”:“i3.xlarge”,“spark_conf”:{“spark.speculation”:真正的},“aws_attributes”:{“可用性”:“現貨”,“zone_id”:“us-west-2a”},“自動定量”:{“min_workers”:2,“max_workers”:8}}},{“job_cluster_key”:“data_processing_cluster”,“new_cluster”:{“spark_version”:“7.3.x-scala2.12”,“node_type_id”:“r4.2xlarge”,“spark_conf”:{“spark.speculation”:真正的},“aws_attributes”:{“可用性”:“現貨”,“zone_id”:“us-west-2a”},“自動定量”:{“min_workers”:8,“max_workers”:16}}}),“任務”:({“task_key”:“ingest_orders”,“描述”:“攝取訂單數據”,“depends_on”:(),“job_cluster_key”:“auto_scaling_cluster”,“spark_jar_task”:{“main_class_name”:“com.databricks.OrdersIngest”,“參數”:(”——數據”,“dbfs: /道路/ / order-data.json”]},“庫”:({“罐子”:“dbfs: / mnt /磚/ OrderIngest.jar”}),“timeout_seconds”:86400年,“max_retries”:3,“min_retry_interval_millis”:2000年,“retry_on_timeout”:},{“task_key”:“clean_orders”,“描述”:“清潔和準備訂單數據”,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/clean-data”},“job_cluster_key”:“default_cluster”,“max_retries”:3,“min_retry_interval_millis”:0,“retry_on_timeout”:真正的,“timeout_seconds”:3600年,“email_notifications”:{}},{“task_key”:“analyze_orders”,“描述”:“執行順序的分析數據,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/analyze-data”},“depends_on”:({“task_key”:“clean_data”}),“job_cluster_key”:“data_processing_cluster”,“max_retries”:3,“min_retry_interval_millis”:0,“retry_on_timeout”:真正的,“timeout_seconds”:3600年,“email_notifications”:{}}),“格式”:“MULTI_TASK”},“created_time”:1625841911296,“creator_user_name”:“user@m.eheci.com”,“run_as_user_name”:“user@m.eheci.com”}

單任務操作格式的工作,JobSettings數據結構保持不變的除外格式字段。沒有TaskSettings包括數組,和任務設置保持頂級的定義JobSettings數據結構。你不需要改變現有的API客戶單任務操作流程格式工作。

一個示例JSON文檔代表一個單一任務API 2.0格式的工作:

{“job_id”:27,“設置”:{“名稱”:“筆記本”,“existing_cluster_id”:“1201 -我的集群”,“庫”:({“罐子”:“dbfs: / FileStore /罐/ spark_examples.jar”}),“email_notifications”:{},“timeout_seconds”:0,“安排”:{“quartz_cron_expression”:“0 0 0 * * ?”,“timezone_id”:“我們/太平洋”,“pause_status”:“停頓”},“notebook_task”:{“notebook_path”:“/筆記本電腦/ example-notebook”,“revision_timestamp”:0},“max_concurrent_runs”:1,“格式”:“SINGLE_TASK”},“created_time”:1504128821443,“creator_user_name”:“user@m.eheci.com”}

API客戶機指南

本節提供指南,例子,需要更改API調用新的多任務格式特性的影響。

創建

通過創建一個單一任務格式工作創建一個新工作操作(帖子/ /創建工作API)工作,你不需要改變現有的客戶。

創建一個多任務格式工作,使用任務JobSettings指定為每個任務設置。下麵的示例創建一個與兩個筆記本的任務工作。這個例子是API 2.0和2.1:

請注意

最多100可以指定任務/工作。

{“名稱”:“Multi-task-job”,“max_concurrent_runs”:1,“任務”:({“task_key”:“clean_data”,“描述”:“清潔和準備數據”,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/clean-data”},“existing_cluster_id”:“1201 -我的集群”,“timeout_seconds”:3600年,“max_retries”:3,“retry_on_timeout”:真正的},{“task_key”:“analyze_data”,“描述”:“執行的分析數據,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/analyze-data”},“depends_on”:({“task_key”:“clean_data”}),“existing_cluster_id”:“1201 -我的集群”,“timeout_seconds”:3600年,“max_retries”:3,“retry_on_timeout”:真正的}]}

運行提交

提交一次運行的單任務操作格式的工作創建並觸發一次運行操作(帖子/ /提交運行API)工作,你不需要改變現有的客戶。

提交一次運行多個任務的格式工作,使用任務JobSettings為每個任務指定的設置,包括集群。集群必須設置任務級別的工作,因為當提交一個多任務格式運行提交請求不支持集群共享工作。看到創建為一個例子JobSettings指定多個任務。

更新

單任務操作更新格式的工作部分更新工作操作(帖子/ /更新工作API)工作,你不需要改變現有的客戶。

更新多任務的格式的設置工作,您必須使用獨特的task_key字段來確定新任務設置。看到創建為一個例子JobSettings指定多個任務。

重置

覆蓋單一任務的設置格式的工作覆蓋所有的設置工作操作(帖子/工作/重置API)工作,你不需要改變現有的客戶。

覆蓋多任務的格式的設置工作,指定一個JobSettings數據結構的數組TaskSettings數據結構。看到創建為一個例子JobSettings指定多個任務。

使用更新改變單個字段沒有從單一任務切換到多任務的格式。

列表

單任務操作格式的工作,不需要客戶更改過程的響應列出所有工作操作(得到/工作/列表API)的工作。

多任務格式的工作,大部分設置都在任務級定義的,而不是工作水平。集群配置可能會設置在任務或工作的水平。修改客戶端訪問集群或任務設置一個多任務工作返回的格式工作結構:

  • 解析job_id字段格式的多任務工作。

  • 通過job_id找到一份工作操作(得到/ /找到工作)就業API來檢索的工作細節。看到得到為響應的一個示例得到API調用格式多任務工作。

下麵的示例顯示了一個包含單一任務的響應和多任務格式工作。這個例子是API 2.0:

{“工作”:({“job_id”:36,“設置”:{“名稱”:“工作與單個任務”,“existing_cluster_id”:“1201 -我的集群”,“email_notifications”:{},“timeout_seconds”:0,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/example-notebook”,“revision_timestamp”:0},“max_concurrent_runs”:1,“格式”:“SINGLE_TASK”},“created_time”:1505427148390,“creator_user_name”:“user@m.eheci.com”},{“job_id”:53,“設置”:{“名稱”:“與多個任務工作”,“email_notifications”:{},“timeout_seconds”:0,“max_concurrent_runs”:1,“格式”:“MULTI_TASK”},“created_time”:1625841911296,“creator_user_name”:“user@m.eheci.com”}]}

得到

單任務操作格式的工作,不需要客戶更改過程的響應找到一份工作操作(得到/ /找到工作API)的工作。

多任務返回的數組格式工作任務數據結構包含任務設置。如果你需要訪問任務層次的細節,你需要修改你的客戶遍曆任務數組和提取所需的字段。

下麵顯示了一個示例響應得到API調用格式多任務工作。這個例子是API 2.0和2.1:

{“job_id”:53,“設置”:{“名稱”:“與多個任務工作”,“email_notifications”:{},“timeout_seconds”:0,“max_concurrent_runs”:1,“任務”:({“task_key”:“clean_data”,“描述”:“清潔和準備數據”,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/clean-data”},“existing_cluster_id”:“1201 -我的集群”,“max_retries”:3,“min_retry_interval_millis”:0,“retry_on_timeout”:真正的,“timeout_seconds”:3600年,“email_notifications”:{}},{“task_key”:“analyze_data”,“描述”:“執行的分析數據,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/analyze-data”},“depends_on”:({“task_key”:“clean_data”}),“existing_cluster_id”:“1201 -我的集群”,“max_retries”:3,“min_retry_interval_millis”:0,“retry_on_timeout”:真正的,“timeout_seconds”:3600年,“email_notifications”:{}}),“格式”:“MULTI_TASK”},“created_time”:1625841911296,“creator_user_name”:“user@m.eheci.com”,“run_as_user_name”:“user@m.eheci.com”}

運行得到

單任務操作格式的工作,不需要客戶更改過程的響應找份工作運行操作(得到/工作/運行/API)的工作。

多任務的響應格式包含一個數組的運行工作TaskSettings。來檢索每個任務的運行結果:

  • 遍曆每一個任務。

  • 解析run_id為每一個任務。

  • 調用得到的輸出操作(得到/ /運行/輸出工作)run_id每個任務的運行的細節。下麵是一個示例響應這個請求:

{“job_id”:53,“run_id”:759600年,“number_in_job”:7,“original_attempt_run_id”:759600年,“狀態”:{“life_cycle_state”:“終止”,“result_state”:“成功”,“state_message”:”“},“cluster_spec”:{},“start_time”:1595943854860,“setup_duration”:0,“execution_duration”:0,“cleanup_duration”:0,“觸發”:“ONE_TIME”,“creator_user_name”:“user@m.eheci.com”,“run_name”:“查詢日誌”,“run_type”:“JOB_RUN”,“任務”:({“run_id”:759601年,“task_key”:“查詢日誌”,“描述”:“查詢會話日誌”,“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/log-query”},“existing_cluster_id”:“1201 -我的集群”,“狀態”:{“life_cycle_state”:“終止”,“result_state”:“成功”,“state_message”:”“}},{“run_id”:759602年,“task_key”:“validate_output”,“描述”:“驗證查詢輸出”,“depends_on”:({“task_key”:“查詢日誌”}),“notebook_task”:{“notebook_path”:“/用戶/ user@m.eheci.com/validate-query-results”},“existing_cluster_id”:“1201 -我的集群”,“狀態”:{“life_cycle_state”:“終止”,“result_state”:“成功”,“state_message”:”“}}),“格式”:“MULTI_TASK”}

運行得到的輸出

單任務操作格式的工作,不需要客戶更改過程的響應得到的輸出操作(得到/ /運行/輸出工作API)的工作。

多任務格式工作,打電話運行得到輸出父母會導致一個錯誤,因為跑上輸出隻對單個任務可用。使多任務的輸出和元數據格式工作:

  • 調用得到的輸出請求。

  • 遍曆子run_id在響應中字段。

  • 使用的孩子run_id值調用運行得到輸出

運行清單

單任務操作格式的工作,不需要客戶更改過程的響應運行工作列表操作(得到/工作/運行/列表)。

多任務工作的格式,一個是空的任務返回數組。通過run_id找份工作運行操作(得到/工作/運行/)檢索任務。下麵顯示了一個示例響應運行列表API調用多任務格式工作:

{“運行”:({“job_id”:53,“run_id”:759600年,“number_in_job”:7,“original_attempt_run_id”:759600年,“狀態”:{“life_cycle_state”:“終止”,“result_state”:“成功”,“state_message”:”“},“cluster_spec”:{},“start_time”:1595943854860,“setup_duration”:0,“execution_duration”:0,“cleanup_duration”:0,“觸發”:“ONE_TIME”,“creator_user_name”:“user@m.eheci.com”,“run_name”:“查詢日誌”,“run_type”:“JOB_RUN”,“任務”:[],“格式”:“MULTI_TASK”}),“has_more”:}