创建批处理作业
功能介绍
该API用于在某个队列上创建批处理作业。
URI
- URI格式:
- 参数说明
表1 URI参数 参数名称
是否必选
参数类型
说明
project_id
是
String
项目编号,用于资源隔离。获取方式请参考获取项目ID。
请求消息
| 参数名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
| file | 是 | String | 用户已上传到DLI资源管理系统的类型为jar或pyFile的程序包名。也支持指定OBS路径,例如:obs://桶名/包名。 |
| class_name | 是 | String | 批处理作业的Java/Spark主类。 |
| queue | 否 | String | 用于指定队列,填写已创建DLI的队列名。必须为通用类型的队列。 说明:
|
| cluster_name | 否 | String | 用于指定队列,填写已创建DLI队列的队列名称。 说明: 推荐使用“queue”参数,“queue”参数与“cluster_name”参数两者不能同时存在。 |
| args | 否 | Array of Strings | 传入主类的参数,即应用程序参数。 |
| sc_type | 否 | String | 计算资源类型,目前可接受参数A, B, C。如果不指定,则按最小类型创建。具体资源类型请参见表3。 |
| jars | 否 | Array of Strings | 用户已上传到DLI资源管理系统的类型为jar的程序包名。也支持指定OBS路径,例如:obs://桶名/包名。 |
| python_files | 否 | Array of Strings | 用户已上传到DLI资源管理系统的类型为pyFile的资源包名。也支持指定OBS路径,例如:obs://桶名/包名。 |
| files | 否 | Array of Strings | 用户已上传到DLI资源管理系统的类型为file的资源包名。也支持指定OBS路径,例如:obs://桶名/包名。 |
| modules | 否 | Array of Strings | 依赖的系统资源模块名,具体模块名可通过查询组内资源包接口查看。 DLI系统提供了用于执行跨源作业的依赖模块,各个不同的服务对应的模块列表如下:
|
| resources | 否 | Array of Objects | JSON对象列表,填写用户已上传到队列的类型为JSON的资源包名和类型。具体请见表4。 |
| groups | 否 | Array of Objects | JSON对象列表,填写用户组类型资源,格式详见请求示例。如果“resources”中的“name”未进行type校验,只要此分组中存在这个名字的包即可。具体请见表5。 |
| conf | 否 | Array of Objects | batch配置项。 |
| name | 否 | String | 创建时用户指定的批处理名称,不能超过128个字符。 |
| driver_memory | 否 | String | Spark应用的Driver内存,参数配置例如2G, 2048M。该配置项会替换“sc_type”中对应的默认参数,使用时必需带单位,否则会启动失败。 |
| driver_cores | 否 | Integer | Spark应用Driver的CPU核数。该配置项会替换sc_type中对应的默认参数。 |
| executor_memory | 否 | String | Spark应用的Executor内存,参数配置例如2G, 2048M。该配置项会替换“sc_type”中对应的默认参数,使用时必需带单位,否则会启动失败。 |
| executor_cores | 否 | Integer | Spark应用每个Executor的CPU核数。该配置项会替换sc_type中对应的默认参数。 |
| num_executors | 否 | Integer | Spark应用Executor的个数。该配置项会替换sc_type中对应的默认参数。 |
| obs_bucket | 否 | String | 保存Spark作业的obs桶,需要保存作业时配置该参数。 |
| auto_recovery | 否 | Boolean | 是否开启重试功能,如果开启,可在Spark作业异常失败后自动重试。默认值为“false”。 |
| max_retry_times | 否 | Integer | 最大重试次数。最大值为“100”,默认值为“20”。 |
| catalog_name | 否 | String | 访问元数据时,需要将该参数配置为dli。 |
| 资源类型 | 物理资源 | driverCores | executorCores | driverMemory | executorMemory | numExecutor |
|---|---|---|---|---|---|---|
| A | 8核32G内存 | 2 | 1 | 7G | 4G | 6 |
| B | 16核64G内存 | 2 | 2 | 7G | 8G | 7 |
| C | 32核128G内存 | 4 | 2 | 15G | 8G | 14 |
响应消息
| 参数名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
| id | 否 | String | 批处理作业的ID。 |
| appId | 否 | Array of strings | 批处理作业的后台app ID。 |
| name | 否 | String | 创建时用户指定的批处理名称,不能超过128个字符。 |
| owner | 否 | String | 批处理作业所属用户。 |
| proxyUser | 否 | String | 批处理作业所属代理用户(资源租户)。 |
| state | 否 | String | 批处理作业的状态,详细说明请参见表7。 |
| kind | 否 | String | 批处理作业类型,只支持spark类型参数。 |
| log | 否 | Array of strings | 显示当前批处理作业的最后10条记录。 |
| sc_type | 否 | String | 计算资源类型。用户自定义时返回CUSTOMIZED。 |
| cluster_name | 否 | String | 批处理作业所在队列。 |
| queue | 是 | String | 用于指定队列,填写已创建DLI的队列名。 说明:
|
| create_time | 否 | Long | 批处理作业的创建时间。是单位为“毫秒”的时间戳。 |
| update_time | 否 | Long | 批处理作业的更新时间。是单位为“毫秒”的时间戳。 |
| duration | 否 | Long | 作业运行时长,单位毫秒。 |
请求示例
{
"file": "batchTest/spark-examples_2.11-2.1.0.luxor.jar",
"class_name": "org.apache.spark.examples.SparkPi",
"sc_type": "A",
"jars": ["demo-1.0.0.jar"],
"files": ["count.txt"],
"resources":[
{"name": "groupTest/testJar.jar", "type": "jar"},
{"name": "kafka-clients-0.10.0.0.jar", "type": "jar"}],
"groups": [
{"name": "groupTestJar", "resources": [{"name": "testJar.jar", "type": "jar"}, {"name": "testJar1.jar", "type": "jar"}]},
{"name": "batchTest", "resources": [{"name": "luxor.jar", "type": "jar"}]}],
"queue": " test",
"name": "TestDemo4"
} 响应示例
{
"id": "07a3e4e6-9a28-4e92-8d3f-9c538621a166",
"appId": "",
"name": "",
"owner": "test1",
"proxyUser": "",
"state": "starting",
"kind": "",
"log": [],
"sc_type": "CUSTOMIZED",
"cluster_name": "aaa",
"queue": "aaa",
"create_time": 1607589874156,
"update_time": 1607589874156
} 错误码
调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。
