create_job
参数说明:
所有类型的参数将被转换为包含属性信息的字典对象。
参数 | 类型 | 描述 |
---|---|---|
job_desc | AppJobDescription object, str, dict | App 作业的简单描述和作业对应的 App 的信息 |
返回值说明:
create_job 方法将返回一个
CreateResponse
对象, 以下是CreateResponse
对象的属性。可以通过response.Id
的方式获取新任务的 ID。
属性 | 类型 | 描述 |
---|---|---|
Id | str | 新任务的任务标识符 |
e.g.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from batchcompute import Client, ClientError
from batchcompute import CN_ZHANGJIAKOU as REGION
from batchcompute.resources import (
ClusterDescription, GroupDescription, Config, Networks, VPC,
AppJobDescription, App, DAG,Mounts,
AutoCluster,Disks,Notification,
)
access_key_id = "" # your access key id
access_key_secret = "" # your access key secret
instance_type = "ecs.sn1.medium" # instance type
stdoutOssPath = "oss://xxx/log/stdout/" #your stdout oss path
stderrOssPath = "oss://xxx/log/stderr/" #your stderr oss path
inputOssPath = "oss://xxx/input/" # your input oss path
outputOssPath = "oss://xxx/output/" #your output oss path
def getRuntimConfig():
config_desc = Config()
# 程序运行所需资源类型
config_desc.ResourceType = "OnDemand"
# 程序运行所需实例类型
config_desc.InstanceType = instance_type
# 程序运行所需实例个数
config_desc.InstanceCount = 1
# 实例系统盘大小,单位 GB
config_desc.MinDiskSize = 40
# 实例系统盘类型 cloud_efficiency/cloud_ssd
config_desc.DiskType = "cloud_efficiency"
# 实例数据盘大小,单位 GB
# config_desc.MinDataDiskSize = 80
# 实例数据盘类型,要和系统盘保持一致
# config_desc.DataDiskType = 'cloud_efficiency'
#实例数据盘挂载点
# config_desc.DataDiskMountPoint = '/home/mount1/'
# 作业失败后是否保留现场,请注意保留会继续产生费用需要及时清除
# config_desc.ReserveOnFail = False
# 设置作业失败重试次数
config_desc.MaxRetryCount = 0
# 设置作业超时时间
config_desc.Timeout = 600
return config_desc
def getAppJobDesc():
job_desc = AppJobDescription()
app_desc = App()
# 设置job 名称
job_desc.Name = "test-app-job"
# test-copy app提交作业
# 提交APP作业之前需要确保test-copy 已经创建成功,具体步骤参考APP创建流程
app_desc.AppName = "test-copy"
# 设置标准输入输出路径
app_desc.Logging.StdoutPath = stdoutOssPath
app_desc.Logging.StderrPath = stderrOssPath
# 设置app的输入输出参数 和 test-copy APP有关
app_desc.add_input("inputFile", inputOssPath)
app_desc.add_output("outputFile", outputOssPath)
# 设置作业的runtime参数
app_desc.Config = getRuntimConfig()
job_desc.App = app_desc
job_desc.Type = "App"
return job_desc
if __name__ == "__main__":
client = Client(REGION, access_key_id, access_key_secret)
try:
job_desc = getAppJobDesc()
job = client.create_job(job_desc)
# Print out the job id.
print (job.Id)
except ClientError, e:
print (e.get_status_code(), e.get_code(), e.get_requestid(), e.get_msg())
Notice:
关于App.Config的注意事项
- App.Config 的参数是可选的,如果不填会使用 App 定义中的默认配置。
- 如果 App 的定义中 Config 中的参数是可覆盖的,Job 级别的 Config 参数会覆盖 App 中的默认配置。
- APP 中各个类的结构体参考如下表格
(1)AppJobDescription 类
参数说明:
参数 | 类型 | 描述 |
---|---|---|
properties | dict, str, JobDescription object | 包含作业描述信息的对象 |
属性说明:
序号 | 属性 | 类型 | 描述 |
---|---|---|---|
1. | Name | str | 作业名称 |
2. | Description | str | 作业的简短描述信息 |
3. | Priority | int | 优先级用一个[0,1000]范围内的整数指定,数值越高表示作业调度时的优先级越高 |
4. | Notification | dict | 消息通知配置,可以配置MNS服务的 Topic 和 Job 相关事件 |
5. | JobFailOnInstanceFail | bool | Instance 失败是否直接使 Job 失败 |
6. | AutoRelease | boolean | 表示 job 运行成功自动会被立即释放(删除)掉,默认为 False |
7. | Type | str | 作业的类型,这里填写 “App”,即 App 类型的作业 |
8. | App | dict, App object | App 的描述 |
(2)App 类
参数说明:
参数 | 类型 | 描述 |
---|---|---|
properties | dict, str, App object | 作业对应的 App 的描述信息 |
属性说明:
序号 | 属性 | 类型 | 描述 |
---|---|---|---|
1. | AppName | str | 作业对应的 App 的名称 |
2. | Inputs | dict | 作业对应的 App 的输入参数 |
3. | Outputs | dict | 作业对应的 App 的输出参数 |
4. | Logging | dict | 作业的日志信息 |
5. | Config | dict | 作业对应的 App 的配置信息 |
方法说明 :
序号 | 方法 | 描述 |
---|---|---|
1. | add_input(name, value) | 增加一个输入参数,这里的 name 要来自于 App 的定义 |
2. | delete_input(name) | 删除一个输入参数,这里的 name 要来自于 App 的定义 |
3. | add_output(name, value) | 增加一个输出参数,这里的 name 要来自于 App 的定义 |
4. | delete_output(name) | 删除一个输出参数,这里的 name 要来自于 App 的定义 |
(3) Config 类
参数说明:
参数 | 类型 | 描述 |
---|---|---|
properties | dict, str, Config object | 作业对应的 App 的模板配置信息 |
属性说明:
序号 | 属性 | 类型 | 描述 |
---|---|---|---|
1. | ResourceType | str | 资源类型 |
2. | InstanceType | str | 实例类型 |
3. | InstanceCount | int | 实例个数 |
4. | MinDiskSize | int | 系统盘的最小值 |
5. | DiskType | str | 系统盘类型 |
6. | MinDataDiskSize | int | 数据盘的最小值 |
7. | DataDiskType | str | 数据盘的类型,需要和系统盘保持一致 |
8. | DataDiskMountPoint | str | 数据盘的挂载点 |
9. | MaxRetryCount | int | 某个实例失败的最大重试次数 |
10. | Timeout | int | Instance 的运行时超时时间,单位为秒 |
11. | ReserveOnFail | bool | 作业失败后,是否保留集群,用于问题排查 |
反馈
- 本页导读 (0)
文档反馈