全部产品
云市场

作业类型

更新时间:2020-03-03 21:09:44

1 背景

批量计算依据用户使用集群方式的区别,将作业分为固定集群作业,AutoCluster作业,AttachCluster作业三种类型。下面分别介绍三种作业的优缺点,您可依据业务需求选择相应的作业类型。

2 作业概述

2.1 固定集群作业

优点:集群支持分布式缓存,适用大规模作业的场景

缺点:需要用户花费精力管理集群资源生命周期

2.2 AutoCluster作业

优点:用户无需花费精力管理集群,由批量计算自动管理集群生命周期

缺点:集群间无法共享分布式缓存数据,访问存储压力大,占用资源多,适用小规模作业的场景

2.3 AttachCluster作业

批量计算最新推出的作业类型。使用方法请参考:AttachCluster最佳实践

优点:

  • 支持资源弹性伸缩,用户无需管理集群生命周期
  • 分布式缓存提高IO性能,减少带宽占用
  • 极大减少集群数量,节省资源
  • 减少作业等待时间,使用方式简单,迁移成本小。

缺点:用户首次使用需创建一个集群,然后才能提交作业。

3 使用区别

3.1 作业管理

AttachCluster AutoCluster 固定集群
创建 需要事先创建集群,在AutoCluster配置里填写当前task需要的配置。 作业启动时自动创建 需要事先创建集群,创建集群时需要指定ImageId和InstanceType,还有需要的机器台数。
释放 手动创建的集群需要自己删除 作业完成后自动释放 需要手动删除. 如果您不再使用集群,请删除,不然会一直收费。
使用 提交作业时需要在AutoCluster字段中指定集群ID 提交作业时指定ImageId和InstanceType,还有需要的机器台数 提交作业时指定集群ID

3.2 作业格式

  • 固定集群模式,直接填写已经创建好的集群
  1. from batchcompute.resources import (
  2. JobDescription, TaskDescription
  3. )
  4. job_desc = JobDescription()
  5. task_desc = TaskDescription()
  6. task_desc.ClusterId = "cls-xxxx"
  7. task_desc.AutoCluster.ClusterId = ""
  8. job_desc.DAG.add_task ("cluster", task_desc)
  • Auto-Cluster模式
  1. from batchcompute.resources import (
  2. JobDescription, TaskDescription
  3. )
  4. job_desc = JobDescription()
  5. task_desc = TaskDescription()
  6. task_desc.ClusterId = "
  7. task_desc.AutoCluster.ClusterId = ""
  8. job_desc.DAG.add_task ("auto_cluster", task_desc)
  • Attach-Cluster模式:
  1. from batchcompute.resources import (
  2. JobDescription, TaskDescription
  3. )
  4. job_desc = JobDescription()
  5. task_desc = TaskDescription()
  6. task_desc.ClusterId = ""
  7. task_desc.AutoCluster.ClusterId = "cls-xxxx"
  8. job_desc.DAG.add_task ("attach_cluster", task_desc)

3.3 适用场景

  • 固定集群作业

    如果您有很多作业要处理,可以考虑使用固定集群。 比如提交100个作业,您可以创建一个10台VM的固定集群,将100个作业全部提交到这个集群即可, 系统会在每个任务完成后自动调度下一个任务运行。全部运行完成后,你需要手动释放掉集群。

  • AutoCluster作业

    AutoCluster在提交作业时指定需要的实例数和实例规格,实际运行任务的时候系统自动创建集群,运行任务完成后自动释放。不在乎等待时间长,或者作业较少情况下,可以使用AutoCluster。

  • AttachCluster作业

    您有很多AutoCluster的作业时(成千上万级别),需要选用AttachCluster。提交作业时需要指定AutoCluster配置中的集群信息,作业运行的时候会被Attach到指定集群上。集群会自动申请和释放所需资源。