批量计算目前支持命令行,控制台和SDK提交作业,本文介绍将作业提交到批量计算的相关操作。
bcs sub "python test.py" -p ./test.py
该命令会将 test.py 文件打包成 worker.tar.gz 并上传到指定位置,然后再提交作业运行。 bcs命令需要先安装 batchcompute-cli 工具 才能使用。
bcs sub 命令格式为 bcs sub <commandLine> [job_name] [options]
,更多参数详情参考bcs sub -h
命令。
在 test.py 所在目录运行下面的命令:
tar -czf worker.tar.gz test.py # 将 test.py 打包到 worker.tar.gz
使用 OSS 控制台,上传 worker.tar.gz。
注意:如果还没有开通 OSS,请先开通;如果还需要创建 Bucket,假设创建了 Bucket 名称为 mybucket;然后在这个 Bucket 下创建一个目录: test。
如果还没有开通 OSS,请先开通。
还需要创建 Bucket,假设创建了 Bucket 名称为 mybucket
然后在这个 Bucket 下创建一个目录: test
假设您上传到了 mybucket 桶下的 test 目录下,则 OSS 路径表示为: oss://mybucket/test/worker.tar.gz。
打开 提交作业 页面。
按照表单提示,填写作业名称为 first_job
拖拽一个任务,按照下图填写表单, 指定 ECS 镜像 ID。
点击下面的“提交作业”按钮, 即可提交成功;提交成功后,自动跳转到作业列表页面,您可以在这里看到你提交的作业状态;等待片刻后作业运行完成,即可查看结果。
同上一节。
from batchcompute import Client, ClientError
from batchcompute import CN_SHENZHEN as REGION
ACCESS_KEY_ID = 'your_access_key_id' #需要配置
ACCESS_KEY_SECRET = 'your_access_key_secret' #需要配置
job_desc = {
"Name": "my_job_name",
"Description": "hello test",
"JobFailOnInstanceFail": true,
"Priority": 0,
"Type": "DAG",
"DAG": {
"Tasks": {
"test": {
"InstanceCount": 1,
"MaxRetryCount": 0,
"Parameters": {
"Command": {
"CommandLine": "python test.py",
"PackagePath": "oss://mybucket/test/worker.tar.gz"
},
"StderrRedirectPath": "oss://mybucket/test/logs/",
"StdoutRedirectPath": "oss://mybucket/test/logs/"
},
"Timeout": 21600,
"AutoCluster": {
"InstanceType": "ecs.sn1.medium",
"ImageId": "img-ubuntu"
}
}
},
"Dependencies": {}
}
}
client = Client(REGION, ACCESS_KEY_ID, ACCESS_KEY_SECRET)
result = client.create_job(job_desc)
job_id = result.Id
....
请参考 Python SDK 。
同上一节。
import com.aliyuncs.batchcompute.main.v20151111.*;
import com.aliyuncs.batchcompute.model.v20151111.*;
import com.aliyuncs.batchcompute.pojo.v20151111.*;
import com.aliyuncs.exceptions.ClientException;
public class SubmitJob{
String REGION = "cn-shenzhen";
String ACCESS_KEY_ID = ""; //需要配置
String ACCESS_KEY_SECRET = ""; //需要配置
public static void main(String[] args) throws ClientException{
JobDescription desc = new SubmitJob().getJobDesc();
BatchCompute client = new BatchComputeClient(REGION, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
CreateJobResponse res = client.createJob(desc);
String jobId = res.getJobId();
//...
}
private JobDescription getJobDesc() {
JobDescription desc = new JobDescription();
desc.setName("testJob");
desc.setPriority(1);
desc.setDescription("JAVA SDK TEST");
desc.setType("DAG");
desc.setJobFailOnInstanceFail(true);
DAG dag = new DAG();
dag.addTask(getTaskDesc());
desc.setDag(dag);
return desc;
}
private TaskDescription getTaskDesc() {
TaskDescription task = new TaskDescription();
task.setClusterId(gClusterId);
task.setInstanceCount(1);
task.setMaxRetryCount(0);
task.setTaskName("test");
task.setTimeout(10000);
AutoCluster autoCluster = new AutoCluster();
autoCluster.setImageId("img-ubuntu");
autoCluster.setInstanceType("ecs.sn1.medium");
// autoCluster.setResourceType("OnDemand");
task.setAutoCluster(autoCluster);
Parameters parameters = new Parameters();
Command cmd = new Command();
cmd.setCommandLine("python test.py");
// cmd.addEnvVars("a", "b");
cmd.setPackagePath("oss://mybucket/test/worker.tar.gz");
parameters.setCommand(cmd);
parameters.setStderrRedirectPath("oss://mybucket/test/logs/");
parameters.setStdoutRedirectPath("oss://mybucket/test/logs/");
// InputMappingConfig input = new InputMappingConfig();
// input.setLocale("GBK");
// input.setLock(true);
// parameters.setInputMappingConfig(input);
task.setParameters(parameters);
// task.addInputMapping("oss://my-bucket/disk1/", "/home/admin/disk1/");
// task.addOutputtMapping("/home/admin/disk2/", "oss://my-bucket/disk2/");
// task.addLogMapping( "/home/admin/a.log","oss://my-bucket/a.log");
return task;
}
}
请参考 Java SDK。
CommandLine 不等同于 SHELL,仅支持”程序+参数”方式,比如”python test.py”或”sh test.sh”。
如果你想要执行 SHELL,可以使用”/bin/bash -c ‘cd /home/xx/ && python a.py’” 或者将 SHELL 写到一个 sh 脚本中如:test.sh, 然后用”sh test.sh”执行。
CommandLine 具体位置:
bcs sub <cmd> [job_name] [options]
的 cmd。cmd.setCommandLine(cmd)
中的 cmd。taskName.Parameters.Command.CommandLine
。前言 时间语义,要配合窗口操作才能发挥作用。最主要的用途,当然就是开窗口、根...
想知道第二届中国国际进口博览会都涵盖了哪些有趣新颖的高科技?国家、国际社会...
个人 云服务器 选择?个人的话,如果是搭建普通类型的网站,在 云服务器 的配置...
域名注册 费一般多少钱? 域名 注册推荐 TOP云 ,域名注册费用便宜,现在 注册域...
最新发布的2020年第三季度超融合行业报告显示,戴尔科技以近 1/3 的行业份额 夺...
云虚拟主机 怎样选择操作系统?云 虚拟主机 也就是我们平常说的虚拟主机,只不过...
根据VMWare发布的一份报告,容器化的Java应用程序在Kubernetes平台上的部署速度...
本文介绍云服务器ECS超级计算集群实例规格族的特点,并列出了具体的实例规格。 ...
买个 域名 空间多少钱?这个问题主要取决于买什么样的域名,以及买什么配置的空...
当您的业务需要多台Alibaba Cloud Linux等保2.0三级版镜像的ECS实例时,您可以通...