更新时间:2024-10-31 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://桶名/包名。

className

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://桶名/包名。

pyFiles

Array of Strings

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

files

Array of Strings

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

modules

Array of Strings

依赖的系统资源模块名,具体模块名可通过查询组内资源包(废弃)接口查看。

DLI系统提供了用于执行跨源作业的依赖模块,各个不同的服务对应的模块列表如下:
  • CloudTable/MRS HBase: sys.datasource.hbase
  • CloudTable/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

Object

batch配置项,参考Spark Configuration

name

String

创建时用户指定的批处理名称,不能超过128个字符。

driverMemory

String

Spark应用的Driver内存,参数配置例如2G, 2048M。该配置项会替换“sc_type”中对应的默认参数,使用时必需带单位,否则会启动失败。

driverCores

Integer

Spark应用Driver的CPU核数。该配置项会替换sc_type中对应的默认参数。

executorMemory

String

Spark应用的Executor内存,参数配置例如2G, 2048M。该配置项会替换“sc_type”中对应的默认参数,使用时必需带单位,否则会启动失败。

executorCores

Integer

Spark应用每个Executor的CPU核数。该配置项会替换sc_type中对应的默认参数。

numExecutors

Integer

Spark应用Executor的个数。该配置项会替换sc_type中对应的默认参数。

obs_bucket

String

保存Spark作业的obs桶名,需要保存作业时配置该参数。

auto_recovery

Boolean

是否开启重试功能,如果开启,可在Spark作业异常失败后自动重试。默认值为“false”。

max_retry_times

Integer

最大重试次数。最大值为“100”,默认值为“20”。

feature

String

作业特性。表示用户作业使用的Spark镜像类型。

  • custom:表示使用用户自定义的Spark镜像。

spark_version

String

作业使用Spark组件的版本号。

  • 如果当前Spark组件版本为2.3.2,则不填写该参数。

image

String

自定义镜像。格式为:组织名/镜像名:镜像版本。

当用户设置“feature”“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Spark镜像。关于如何使用自定义镜像,请参考《数据湖探索用户指南》。

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

String

批处理作业的后台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”参数两者不能同时存在。

image

String

自定义镜像。格式为:组织名/镜像名:镜像版本。

当用户设置“feature”“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Spark镜像。关于如何使用自定义镜像,请参考《数据湖探索用户指南》。

create_time

Long

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

update_time

Long

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

duration

Long

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

表7 批处理作业状态说明

参数名称

参数类型

说明

starting

String

批处理作业正在启动。

running

String

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

dead

String

批处理作业已退出。

success

String

批处理作业执行成功。

recovering

String

批处理作业正在恢复。

请求示例

创建Spark作业,作业的Spark主类为“org.apache.spark.examples.SparkPi”,指定程序包batchTest/spark-examples_2.11-2.1.0.luxor.jar,并加载上传到DLI类型为jar的程序号和类型为files的资源包。

{
    "file": "batchTest/spark-examples_2.11-2.1.0.luxor.jar",
    "className": "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",
    "feature": "basic",
    "spark_version": "2.3.2"
}

其中“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

内部服务器错误。

错误码

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