全部产品
阿里云办公

创建作业(DAG 类型)

更新时间:2018-12-22 14:50:48

create_job

参数说明:

所有类型的参数将被转换为包含属性信息的字典对象。

参数 类型 描述
job_desc JobDescription object, str, dict 作业的简单描述和作业对象中各个任务的描述信息,以及各个任务之间的DAG依赖关系

返回值说明:

create_job 方法将返回一个CreateResponse对象, 以下是 CreateResponse 对象的属性。可以通过 response.Id 的方式获取新任务的 ID。

属性 类型 描述
Id str 新任务的任务标识符

e.g.

  1. try:
  2. # Init a Client object.
  3. client = ...
  4. # Refer to JobDescription.
  5. job_desc = JobDescription(...)
  6. job = client.create_job(job_desc)
  7. # Print out the job id.
  8. print (job.Id)
  9. except ClientError, e:
  10. print (e)

(1)JobDescription 类

参数说明:

参数 类型 描述
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 目前仅支持有向无环图(directed acycline graph,DAG)形式描述任务
8. DAG dict, DAG object DAG 描述

(2)DAG 类

参数说明:

参数 类型 描述
properties dict, str, DAG object 所有任务的映射以及任务间依赖关系的描述信息

属性说明:

序号 属性 类型 描述
1. Tasks dict 所有任务名与任务描述的映射关系
2. Dependencies dict 所有任务间的相互依赖关系

方法说明 :

序号 方法 描述
1. add_task(task_name, task) 增加一个任务
2. get_task(task_name) 通过任务名获取任务信息
3. delete_task(task_name) 删除某个任务

e.g.

  1. # Refer to the TaskDescription class.
  2. find_task = TaskDescription(...)
  3. task_dag = DAG()
  4. task_dag.add_task(task_name='Find', task=find_task)
  5. task_dag.Dependencies = {}

(3) TaskDescription 类

参数说明:

参数 类型 描述
properties dict, str, TaskDescription object 单个任务的描述信息

属性说明:

序号 属性 类型 描述
1. Parameters dict, Parameters object 任务参数详情
2. InputMapping dict OSS 到本地路径的映射
3. OutputMapping dict 本地路径到 OSS 的映射
4. LogMapping dict 本地日志路径对 OSS 映射
5. Timeout int 任务超时时间
6. InstanceCount int 任务中实例的个数,正数
7. MaxRetryCount int 最大重试次数,默认为0
8. ClusterId str 集群标识符
9. Mounts dict, Mounts object 实例的网络挂载配置信息,由 Mounts 描述,目前支持 NAS 和 OSS 挂载。
10. AutoCluster dict, AutoCluster object 匿名集群,和集群标示符最多只能指定一个

e.g.

  1. echo_task = TaskDescription()
  2. # Create map task.
  3. # Refer to Parameters documentation.
  4. echo_task.Parameters.Command.CommandLine = "echo Batchcompute Service"
  5. echo_task.Parameters.Command.PackagePath = ""
  6. echo_task.Parameters.StdoutRedirectPath = "oss://xxx/xxx/"
  7. echo_task.Parameters.StderrRedirectPath = "oss://xxx/xxx/"
  8. echo_task.Timeout = 86400 # 1-day
  9. echo_task.InstanceCount = 3
  10. echo_task.MaxRetryCount = 1
  11. # cluster_id is a cluster created in batchcompute service before.
  12. echo_task.ClusterId = cluster_id
  13. # You can now add this task description to a DAG object through its add_task method.

(4) Parameters 类

参数说明:

参数 类型 描述
properties dict, str, Parameters object 任务参数的描述信息

属性说明:

序号 属性 类型 描述
1. Command dict, Command object 用户程序相关命令行参数
2. InputMappingConfig dict, InputMappingConfig object NFS 挂载服务配置项
3. StdoutRedirectPath str 标准输出的 OSS 路径
4. StderrRedirectPath str 标准错误的 OSS 路径

(5) AutoCluster 类

参数说明:

参数 类型 描述
properties dict, str, AutoCluster object 匿名集群信息

属性说明:

序号 属性 类型 描述
1. ECSImageId str ECS 镜像 ID,可以使用系统提供的镜像
2. InstanceType str 实例规格,实例类型
3. ResourceType str 资源类型,目前支持: “OnDemand” 和 “Spot”,默认为“OnDemand”
4. UserData dict 一个 KeyValue 映射,用户自定义的信息,使用 ECS 的 metaserver 获取
5. Configs Configs object 集群的配置信息, 详见4.13 节中 ClusterDescription 的介绍
6. SpotStrategy str 实例的竞价策略,只有在 ResourceType 为 Spot 的情况下有效。取值范围: SpotWithPriceLimit:设置上限价格的竞价实例; SpotAsPriceGo:系统自动出价,最高按量付费价格。
7. SpotPriceLimit float 实例的每小时最高价格(每个实例规格的价格而非每核小时的价格)。支持最大 3 位小数,SpotStrategy 为 SpotWithPriceLimit 生效。
8. ReserveOnFail bool 任务失败时不释放相关的虚拟机,会继续收取这些资源的费用直到用户删除作业,默认为 False,仅用于调查问题。

(6) Command 类

参数说明:

参数 类型 描述
properties dict, str, Command object 用户程序相关命令行参数

属性说明:

序号 属性 类型 描述
1. CommandLine str 执行用户程序的命令
2. PackagePath str 用户程序所在 OSS 路径
3. EnvVars dict 用户程序执行时的环境变量

(7) InputMappingConfig 类

参数说明:

参数 类型 描述
properties dict, str, InputMappingConfig object NFS 挂载服务配置项

属性说明:

序号 属性 类型 描述
1. Locale str OSS object 挂载到本地时使用的字符集。可选范围包括 GBK、GB2312-80、BIG5、ANSI、EUC-JP、EUC-TW、EUC-KR、SHIFT-JIS、KSC5601 等
2. Lock bool NFS 挂载服务是否支持网络文件锁

(8) Notification 类

参数说明:

参数 类型 描述
properties dict, str, Command object 用户程序相关命令行参数

属性说明:

序号 属性 类型 描述
1. Topic Topic Object 消息 Topic

(9) Topic 类

参数说明:

参数 类型 描述
properties dict, str, Command object 用户程序相关命令行参数

属性说明:

序号 属性 类型 描述
1. Endpoint str MNS 区域 endpoint,格式如: http://${your_user_id}.mns.${region}-internal.aliyuncs.com/ ,请尽量使用内网 Endpoint。
2. Name str Topic 名称。
3. Events list 事件列表,请填写 cluster 相关的事件名。

(10) Mounts 类

参数说明:

参数 类型 描述
properties dict, str, Command object 创建集群时的网络磁盘挂载配置信息。

属性说明:

序号 属性 类型 描述
1. Entries array 网络磁盘挂载点信息列表, 由 MountPoint 描述。
2. Locale str 挂载 OSS,NAS 存储时语言选项。
3. Lock bool 挂载 OSS,NAS 存储时文件锁支持选项。
4. NAS dict NAS 配置信息。
5. OSS dict OSS 配置信息。

(11) MountPoint 类

参数说明:

参数 类型 描述
properties dict, str, Command object 网络挂载点。

属性说明:

序号 属性名称 类型 描述
1. Source str 网络磁盘挂载来源路径,可以是 nas://oss:// 开头的字符串。
2. Destination str 网络磁盘本地挂载点路径。
3. WriteSupport bool 挂载点是否可写。

(12) NAS 类

参数说明:

参数 类型 描述
properties dict, str, Command object NAS 配置信息。

属性说明:

序号 属性名称 类型 描述
1. AccessGroup list 需要将集群实例加入到的 NAS 访问组。
2. FileSystem list 需要访问的文件系统。

(13) OSS 类

参数说明:

参数 类型 描述
properties dict, str, Command object OSS 配置信息。

属性说明:

序号 属性名称 类型 描述
1. AccessKeyId str OSS挂载使用的 Access ID。
2. AccessKeySecret str OSS挂载使用的 Access Secret。
3. SecurityToken str OSS挂载使用的 Security Token。

Notice:

关于Mounts的注意事项

  1. Job 级别的 Mounts 参数会覆盖 Cluster 级别的配置信息;
  2. Modify Cluster 后,需要调用 RecreateInstance 接口才能使新指定的 Mounts 配置生效;
  3. 挂载 NAS 需要以 nas:// 做为 source 的前缀,否则会出错;