作业配置说明

最近更新时间:2024-08-15 15:13:12

我的收藏

1. 简要说明

批量计算 Batch 的作业配置以 JSON 格式提供,下面给出这个配置的简要说明,下面的作业包含2个任务:
{
"JobName": "TestJob", // 作业名称
"JobDescription": "for test ", // 作业描述
"Priority": "1", // 作业优先级
"Tasks": [ // 任务列表(本例包含两个任务)
{
// 任务1 (最简化的任务配置,去除所有非必选项)
"TaskName": "Task1", // 任务1名称
"Application": { // 任务执行命令
"DeliveryForm": "LOCAL", // 应用程序的交付方式
"Command": "echo hello" // 命令具体内容(输出 hello)

},
"ComputeEnv": { // 计算环境配置
"EnvType": "MANAGED", // 计算环境类型,托管型和非托管型
"EnvData": { // 具体配置(当前托管型,可参照CVM 创建实例说明)
"InstanceType": "S1.SMALL1", // CVM 实例类型
"ImageId": "img-m4q71qnf", // CVM 镜像 ID
}
},
"RedirectInfo": { // 标准输出重定向配置
"StdoutRedirectPath": "cos://dondonbatchv5- 1251783334.cosgz.myqcloud.com/logs/", // 标准输出(需替换)
"StderrRedirectPath": "cos://dondonbatchv5-1251783334.cosgz.myqcloud.com/logs/" // 标准错误(需替换)
},
"Authentications": [ // 鉴权相关信息(选填,访问非本人COS场景使用)
{
"Scene": "COS", // 场景(当前是 COS)
"SecretId": "***", // SecretId(需替换)
"SecretKey": "***" // SecretKey(需替换)
}
]
},
{
// 任务2
"TaskName": "Task2", // 任务2名称
"TaskInstanceNum": 1, // 任务2并发实例数目
"Application": { // 任务执行命令
"DeliveryForm": "LOCAL", // 执行本地命令
"Command": "python -c \\"fib=lambda n:1 if n<=2 else fib(n-1)+fib(n-2); print(fib(20))\\" " // 命令具体内容(斐波拉契求和)
},
"ComputeEnv": { // 计算环境配置
"EnvType": "MANAGED", // 计算环境类型,托管型和非托管型
"EnvData": { // 具体配置(当前托管型,可参照CVM 创建实例说明)
"InstanceType": "S1.SMALL1", // CVM 实例类型
"ImageId": "img-m4q71qnf", // CVM 镜像 ID(可替换)
"VirtualPrivateCloud": { // CVM 网络配置(选填)
"VpcId": "vpc-cg18la4l", // VpcId(需替换)
"SubnetId": "subnet-8axej2jc" // SubnetId(需替换)
},
"SystemDisk": { // CVM 系统盘配置
"DiskType": "CLOUD_BASIC",
"DiskSize": 50
},
"DataDisks": [ // CVM 数据盘配置
{
"DiskType": "CLOUD_BASIC",
"DiskSize": 50
}
]
}
},
"RedirectInfo": { // 标准输出重定向配置
"StdoutRedirectPath": "cos://dondonbatchv5- 1251783334.cosgz.myqcloud.com/logs/", // 标准输出(需替换)
"StderrRedirectPath": "cos://dondonbatchv5-1251783334.cosgz.myqcloud.com/logs/" // 标准错误(需替换)
},
"MaxRetryCount": 1, // 最大重试数目
"Authentications": [ // 鉴权相关信息(选填,访问非本人COS场景使用)
{
"Scene": "COS", // 场景(当前是 COS)
"SecretId": "***", // SecretId(需替换)
"SecretKey": "***" // SecretKey(需替换)
}
]
}
],
"Dependences": [
{
"StartTask": "Task1",
"EndTask": "Task2"
}
]
}

2. 详细说明

I. 作业(Job)

作业是 Batch 提交的单元,除了本身信息,还包含了一个或者多个任务(Task)的信息以及 Task 之间的依赖关系。
名称
类型
是否必选
描述
JobName
String
作业名称
JobDescription
String
作业描述
Priority
Integer
作业优先级,任务(Task)和任务实例(TaskInstance)会继承作业优先级
Tasks.N
array of Task objects
任务信息
Dependences.N
array of Dependence objects
依赖信息

II. 任务(Task)

一个作业可以包含多个任务,任务主要描述了批处理数据计算中,实际计算过程依赖的环境(机型、系统、镜像)、执行的代码包和命令行、存储、网络等相关信息。
名称
类型
是否必选
描述
示例
TaskName
String
任务名称,在一个作业内部唯一
Task1
TaskInstanceNum
Integer
任务实例运行个数
1
Application
Application object
应用程序信息
-
ComputeEnv
ComputeEnv object
运行环境信息
-
RedirectInfo
RedirectInfo object
重定向路径
-
InputMappings
array of InputMapping object
输入映射
-
OutputMappings
array of OutputMapping object
输出映射
-
Authentications
array of Authentication object
授权信息
-
MaxRetryCount
Integer
任务失败后的最大重试次数
3
Timeout
Integer
任务启动后的超时时间,单位秒
3600

Application

名称
类型
是否必选
描述
示例
Command
String
任务执行命令

DeliveryForm
String
应用程序的交付方式
LOCAL 本地,PACKAGE 远程代码包
PackagePath
String
远程代码包路径,必须 .tgz 格式
``http://batchdemo-1251783334.cosgz.myqcloud.com/codepkg/codepkg.tgz`` (仅 PACKAGE 方式)

ComputeEnv

名称
类型
是否必选
描述
示例
EnvType
String
计算环境管理类型,包括托管和非托管两种
MANAGED 托管,UNMANAGED 非托管
EnvData
EnvData object
计算环境具体参数
-

EnvData

名称
类型
是否必选
描述
示例
InstanceType
String
CVM实例类型,托管类型必填
S1.SMALL1
ImageId
String
CVM镜像 ID,托管类型必填
img-m4q71qnf
others
others
参考 CVM API文档 创建实例 提供的参数
支持 SystemDisk、DataDisks、VirtualPrivateCloud 等

RedirectInfo

名称
类型
是否必选
描述
示例
StdoutRedirectPath
String
标准输出重定向路径
cos://dondonbatchv5-1251783334.cosgz.myqcloud.com/logs/
StderrRedirectPath
String
标准错误重定向路径
cos://dondonbatchv5-1251783334.cosgz.myqcloud.com/logs/

InputMapping

名称
类型
是否必选
描述
示例
SourcePath
String
源端路径
cos://dondonbatchv5-1251783334.cosgz.myqcloud.com/input/
DestinationPath
String
目的端路径
/data/input/

OutputMapping

名称
类型
是否必选
描述
示例
SourcePath
String
源端路径
/data/output/
DestinationPath
String
目的端路径
cos://dondonbatchv5-1251783334.cosgz.myqcloud.com/output/

Authentication

如果填写的 COS 路径(存储映射、日志重定向)是本人 COS 地址,无需填写。需要访问其他人的 COS 时,需要填写对应的访问密钥。
名称
类型
是否必选
描述
Scene
String
授权场景,例如COS
SecretId
String
SecretId
SecretKey
String
SecretKey

III. 任务依赖(Dependence)

描述任务之间的先后关系,假设作业包含 2 个任务, StartTask 为 Task1,EndTask 为 Task2,则会在执行完 Task1 之后才会启动 Task2,Task2 执行完则作业执行完毕。
名称
类型
是否必选
描述
示例
StartTask
String
依赖关系的起点任务名称
Task1
EndTask
String
依赖关系的终点任务名称
Task2