创建批处理作业
功能介绍
该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" }
其中“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 }
错误码
调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。