如何提交作业__操作指南_批量计算-阿里云
如何提交一个作业
A君: 我有一个python程序,我在本地可以这么运行:python test.py, 但是想要在云上运行怎么做?
test.py 内容如下:
print('Hello, cloud!')
云上运行大致过程: 您提交一个作业到BatchCompute,BatchCompute会按照你提供的配置去申请机器,启动虚拟机,在虚拟机中运行: python test.py, 得到结果后自动上传到OSS中。然后您可以去OSS中查看运行的结果。
提交作业的方法有很多,下面列举4种:
1. 使用命令行(一条命令提交作业):
bcs sub "python test.py" -p ./test.py
搞定!
- 这条命令会将test.py文件打包成 worker.tar.gz 上传到指定位置,然后再提交作业运行。
bcs命令需要先安装 batchcompute-cli工具才能使用, 请看这里。
2. 使用控制台提交作业:
下面列举详细解释步骤:
(1). 将test.py打包上传到云端OSS
在test.py所在目录运行下面的命令:
tar -czf worker.tar.gz test.py # 将 test.py 打包到 worker.tar.gz
然后使用OSS控制台将 worker.tar.gz 上传到OSS。
如果还没有开通OSS,请先开通.
还需要创建Bucket,假设创建了Bucket名称为 mybucket
然后在这个Bucket下创建一个目录: test
假设您上传到了mybucket这个Bucket下的test目录下,则OSS路径表示为: oss://mybucket/test/worker.tar.gz
(2). 使用控制台提交作业
打开 提交作业页面。
- 按照表单提示,填写作业名称: first_job

- 拖拽一个任务,按照下图填写表单, 其中ECS镜像ID可以从这里获取: 镜像

然后点击下面的”提交作业”按钮, 即可提交成功。
提交成功后,自动跳转到作业列表页面,您可以在这里看到你提交的作业状态。
等待片刻后作业运行完成,即可查看结果。
3. 使用 Python SDK 提交作业
(1) 将test.py打包上传到云端OSS
同上一节。
(2) 提交作业
from batchcompute import Client, ClientErrorfrom batchcompute import CN_SHENZHEN as REGIONACCESS_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": "bcs.a2.large","ImageId": "img-ubuntu"}}},"Dependencies": {}}}client = Client(REGION, ACCESS_KEY_ID, ACCESS_KEY_SECRET)result = client.create_job(job_desc)job_id = result.Id....
(3) 更多关于Python SDK内容
请看 Python SDK
4. 使用 Java SDK 提交作业
(1) 将test.py打包上传到云端OSS
同上一节。
(2) 提交作业
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("bcs.a2.large");// 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;}}
(3) 更多关于Java SDK内容
请看 Java SDK
最后更新:2016-12-05 17:40:27
上一篇:
Python快速开始__快速入门_批量计算-阿里云
下一篇:
OSS挂载__操作指南_批量计算-阿里云
CC防护规则-正常与紧急__功能说明_Web 应用防火墙-阿里云
修改Pipeline__Pipeline管理_Console参考手册_数据集成-阿里云
分析型数据库监控__云服务监控_用户指南_云监控-阿里云
多结构数据存储__典型应用_用户指南_云数据库 RDS 版-阿里云
报警设置__用户指南_云数据库 Redis 版-阿里云
创建删除表__快速开始_大数据计算服务-阿里云
创建队列__队列操作_快速入门_消息服务-阿里云
FailReason__数据类型_API参考_E-MapReduce-阿里云
云栖大会:阿里云都发布了什么产品?
步骤 3-2:创建和设置报表控件__创建监控任务_用户指南_业务实时监控服务 ARMS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云