乔布斯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@www.neidfyre.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@www.neidfyre.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@www.neidfyre.com”,“run_as_user_name”:“user@www.neidfyre.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@www.neidfyre.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@www.neidfyre.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@www.neidfyre.com”,“run_as_user_name”:“user@www.neidfyre.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@www.neidfyre.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@www.neidfyre.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@www.neidfyre.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@www.neidfyre.com/example-notebook”,“revision_timestamp”:0},“max_concurrent_runs”:1,“格式”:“SINGLE_TASK”},“created_time”:1505427148390,“creator_user_name”:“user@www.neidfyre.com”},{“job_id”:53,“设置”:{“名称”:“与多个任务工作”,“email_notifications”:{},“timeout_seconds”:0,“max_concurrent_runs”:1,“格式”:“MULTI_TASK”},“created_time”:1625841911296,“creator_user_name”:“user@www.neidfyre.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@www.neidfyre.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@www.neidfyre.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@www.neidfyre.com”,“run_as_user_name”:“user@www.neidfyre.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@www.neidfyre.com”,“run_name”:“查询日志”,“run_type”:“JOB_RUN”,“任务”:({“run_id”:759601年,“task_key”:“查询日志”,“描述”:“查询会话日志”,“notebook_task”:{“notebook_path”:“/用户/ user@www.neidfyre.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@www.neidfyre.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@www.neidfyre.com”,“run_name”:“查询日志”,“run_type”:“JOB_RUN”,“任务”:[],“格式”:“MULTI_TASK”}),“has_more”:}