本文将向您介绍批量计算产品中涉及的几种作业类型,以便于您更好地选择批量计算产品。
背景
批量计算依据您使用集群方式的区别,将作业分为固定集群作业,自动集群作业,组合集群作业三种类型。下面分别介绍三种作业的优缺点,您可依据业务需求选择相应的作业类型。
作业概述
固定集群作业
优点:集群支持分布式缓存,适用大规模作业的场景;
缺点:需要您花费精力管理集群资源生命周期。
自动集群作业
优点:您无需花费精力管理集群,由批量计算自动管理集群生命周期;
缺点:集群间无法共享分布式缓存数据,访问存储压力大,占用资源多,适用小规模作业的场景。
组合集群作业
批量计算最新推出的作业类型。使用方法请参考组合集群最佳实践
优点:
- 支持资源弹性伸缩,您无需管理集群生命周期;
- 分布式缓存提高IO性能,减少带宽占用;
- 极大减少集群数量,节省资源 ;
- 减少作业等待时间,使用方式简单,迁移成本小。
缺点:您首次使用需创建一个集群,然后才能提交作业。
使用区别
作业管理
类型 | 组合集群 | 自动集群 | 固定集群 |
---|---|---|---|
创建 | 需要事先创建集群,在自动集群配置里填写当前task需要的配置。 | 作业启动时自动创建。 | 需要事先创建集群,创建集群时需要指定ImageId和InstanceType,还有需要的机器台数。 |
释放 | 手动创建的集群需要自己删除。 | 作业完成后自动释放。 | 需要手动删除。如果您不再使用集群,请删除,不然会一直收费。 |
使用 | 提交作业时需要在自动集群字段中指定集群ID。 | 提交作业时指定ImageId和InstanceType,还有需要的机器台数。 | 提交作业时指定集群ID。 |
作业格式
- 固定集群模式,直接填写已经创建好的集群。
from batchcompute.resources import (
JobDescription, TaskDescription
)
job_desc = JobDescription()
task_desc = TaskDescription()
task_desc.ClusterId = "cls-xxxx"
task_desc.AutoCluster.ClusterId = ""
job_desc.DAG.add_task ("cluster", task_desc)
- Auto-Cluster模式
from batchcompute.resources import (
JobDescription, TaskDescription
)
job_desc = JobDescription()
task_desc = TaskDescription()
task_desc.ClusterId = ""
task_desc.AutoCluster.ClusterId = ""
job_desc.DAG.add_task ("auto_cluster", task_desc)
- Attach-Cluster模式:
from batchcompute.resources import (
JobDescription, TaskDescription
)
job_desc = JobDescription()
task_desc = TaskDescription()
task_desc.ClusterId = ""
task_desc.AutoCluster.ClusterId = "cls-xxxx"
job_desc.DAG.add_task ("attach_cluster", task_desc)
适用场景
固定集群作业
如果您有很多作业要处理,可以考虑使用固定集群。 比如提交100个作业,您可以创建一个10台VM的固定集群,将100个作业全部提交到这个集群即可, 系统会在每个任务完成后自动调度下一个任务运行。全部运行完成后,你需要手动释放掉集群。
自动集群作业
自动集群在提交作业时指定需要的实例数和实例规格,实际运行任务的时候系统自动创建集群,运行任务完成后自动释放。不在乎等待时间长,或者作业较少情况下,可以使用自动集群。
组合集群作业
您有很多自动集群的作业时(成千上万级别),需要选用组合集群。提交作业时需要指定自动集群配置中的集群信息,作业运行的时候会被组合到指定集群上。集群会自动申请和释放所需资源。
文档内容是否对您有帮助?