全部产品
阿里云办公

使用集群

更新时间:2018-10-27 17:55:05

集群使用场景介绍

使用 AutoCluster 还是 Cluster?

用户提交作业时,如果指定一个 Cluster ID,那么作业的任务运行时会被调度到这个 Cluster 中运行。如果没有指定集群,则可以使用 AutoCluster 配置,指定 镜像实例类型 即可。任务运行时会自动创建相应的 Cluster,运行完成后自动释放掉。

什么情况下应该使用 Cluster?

如果你有很多作业(Job)要处理,可以考虑使用 Cluster。

比如有 100 个作业要运行,你可以创建一个 10 台 VM 的 Cluster,将 100 个作业全部提交到这个集群,然后只需等待即可, 系统会在每个任务完成后自动调度下一个任务运行。全部运行完成后,你需要手动释放(删除)掉集群。这样可以节省时间和费用。

什么情况下使用AutoCluster?

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

1. 区别

AutoCluster Cluster
创建 作业启动时自动创建 需要事先创建集群,创建集群时需要指定 ImageId 和 InstanceType,还有需要的机器台数。
释放 作业完成后自动释放 需要手动删除. 如果您不再使用集群,请删除,不然会一直收费。
使用 提交作业时指定 ImageId 和 InstanceType,还有需要的机器台数 提交作业时指定集群 ID

2. 如何使用 Cluster

A) 使用 Python SDK

  1. # 使用 clusterId 就无需使用 AutoCluster
  2. job_desc['DAG']['Tasks']['my-task']['ClusterId'] = "cls-xxxxxxx"

B) 使用 Java SDK

以下是代码片段:

  1. // 使用 clusterId 就无需使用 AutoCluster
  2. desc.setClusterId("cls-xxxxxxx");

C) 使用命令行

  1. # 使用 clusterId
  2. bcs sub "python main.py" -c cls-0101010299123

3. 如何使用 AutoCluster

A) 使用 Python SDK

  1. ...
  2. autoCluster = {
  3. 'ImageId': 'img-ubuntu',
  4. 'InstanceType': 'ecs.sn1.medium'
  5. }
  6. ...
  7. job_desc['DAG']['Tasks']['my-task']['AutoCluster'] = autoCluster
  8. ...

B) 使用 Java SDK

以下是代码片段:

  1. AutoCluster autoCluster = new AutoCluster();
  2. autoCluster.setImageId("img-ubuntu");
  3. autoCluster.setInstanceType("ecs.sn1.medium");
  4. TaskDescription desc = new TaskDescription();
  5. desc.setAutoCluster(autoCluster);

C) 使用命令行

  1. # 使用 Auto Cluster
  2. bcs sub "python main.py" -c img=img-ubuntu:type=ecs.sn1.medium