全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
批量计算

集群

更新时间:2017-11-13 16:25:57

使用集群

使用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

(1) 使用 Python SDK

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

(2) 使用 Java SDK

以下是代码片段:

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

(3) 使用命令行

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

3. 如何使用 AutoCluster

(1) 使用 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. ...

(2) 使用 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);

(3) 使用命令行

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