更新时间:2022-12-07 GMT+08:00

创建批处理作业

功能介绍

该API用于在某个队列上创建批处理作业。

URI

  • URI格式:

    POST /v2.0/{project_id}/batches

  • 参数说明
    表1 URI参数

    参数名称

    是否必选

    参数类型

    说明

    project_id

    是

    String

    项目编号,用于资源隔离。获取方式请参考获取项目ID。

请求消息

表2 请求参数

参数名称

是否必选

参数类型

说明

file

是

String

用户已上传到DLI资源管理系统的类型为jar或pyFile的程序包名。也支持指定OBS路径,例如:obs://桶名/包名。

class_name

是

String

批处理作业的Java/Spark主类。

queue

否

String

用于指定队列,填写已创建DLI的队列名。必须为通用类型的队列。

说明:
  • 兼容“cluster_name”参数,即如果使用“cluster_name”指定队列仍然有效。
  • 推荐使用“queue”参数,“queue”参数与“cluster_name”参数两者不能同时存在。

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系统提供了用于执行跨源作业的依赖模块,各个不同的服务对应的模块列表如下:
  • MRS HBase: sys.datasource.hbase
  • MRS OpenTSDB: sys.datasource.opentsdb
  • RDS MySQL: sys.datasource.rds
  • RDS PostGre: 不需要选
  • DWS: 不需要选
  • CSS: sys.datasource.css

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。

表3 资源类型说明

资源类型

物理资源

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

表4 resources参数说明

参数名称

是否必选

参数类型

说明

name

否

String

资源名称。也支持指定OBS路径,例如:obs://桶名/包名。

type

否

String

资源类型。

表5 groups参数说明

参数名称

是否必选

参数类型

说明

name

否

String

用户组名称。

resources

否

Array of Objects

用户组资源。具体请参考表4。

响应消息

表6 响应参数

参数名称

是否必选

参数类型

说明

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的队列名。

说明:
  • 兼容“cluster_name”参数,即如果使用“cluster_name”指定队列仍然有效。
  • 推荐使用“queue”参数,“queue”参数与“cluster_name”参数两者不能同时存在。

create_time

否

Long

批处理作业的创建时间。是单位为“毫秒”的时间戳。

update_time

否

Long

批处理作业的更新时间。是单位为“毫秒”的时间戳。

duration

否

Long

作业运行时长,单位毫秒。

表7 批处理作业状态说明

参数名称

参数类型

说明

starting

String

批处理作业正在启动。

running

String

批处理作业正在执行任务。

dead

String

批处理作业已退出。

success

String

批处理作业执行成功。

recovering

String

批处理作业正在恢复。

请求示例

{
    "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"
    
    
}

其中“batchTest/spark-examples_2.11-2.1.0.luxor.jar”已提前通过上传分组资源接口上传。

响应示例

{
  "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
}

状态码

状态码如表8所示。

表8 状态码

状态码

描述

200

创建成功。

400

请求错误。

500

内部服务器错误。

错误码

调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。