作业类型

本文将向您介绍批量计算产品中涉及的几种作业类型,以便于您更好地选择批量计算产品。

背景

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

作业概述

固定集群作业

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

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

自动集群作业

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

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

组合集群作业

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

优点:

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

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

使用区别

作业管理

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

作业格式

  • 固定集群模式,直接填写已经创建好的集群。
  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)

适用场景

  • 固定集群作业

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

  • 自动集群作业

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

  • 组合集群作业

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