如果您还没开通批量计算服务,请先开通。
命令行工具安装和配置
作业准备
本作业的目的是求和,将 input.txt 中的数字全部加起来,求和后写入 output.txt。
由于计算比较简单本作业只需 1 个任务。
本例将 OSS 的目录挂载为 VM 本地目录,使用文件方式操作。
上传数据文件到OSS
先自行创建 input.txt。
input.txt的内容(确保一行一个数字):
2
40
51
将 input.txt 上传到您的 OSS bucket:
bcs o up input.txt oss://your-bucket/sum/inputs/
# 上传完成后check
bcs o ls oss://your-bucket/sum/inputs/
your-bucket 表示您自己创建的 bucket,本例子假设 region 为:cn-shenzhen。
bcs o
命令提供几个 OSS 常用的功能,使用bcs o -h
可以查看帮助,测试少量数据时使用很方便,但上传下载大量数据时不建议使用(没有实现多线程,上传下载慢。更多关于如何上传到 OSS,请参考 常用 OSS 工具。
准备任务程序
sum.sh 内容:
#!/bin/bash
t=0
while read LINE
do
t=$(($t+${LINE}))
done < /home/inputs/input.txt
echo $t
echo $t > /home/outputs/output.txt
注意在上一个步骤里我们把输入文件 input.txt 上传到了oss://your-bucket/sum/inputs/
,在以上程序中 input.txt 是从虚拟机的/home/inputs/
目录中读取,这是通过批量计算中对 OSS 的挂载功能实现的,具体配置将在下一步骤“提交作业”中解释。
在这个示例程序里,我们通过 bash 脚本完成了求和的功能。您也可以在脚本里执行任何其他应用程序,如何把应用程序部署到批量计算环境请参考 自定义镜像和 使用 Docker。
提交作业
在 sum.sh 所在目录运行下面的命令来提交作业:
bcs sub "sh sum.sh" -p sum.sh -r oss://your-bucket/sum/inputs/:/home/inputs/ -w oss://your-bucket/sum/outputs/:/home/outputs/
这里使用 默认镜像和默认实例类型。
-r 表示只读挂载,将 OSS 目录
oss://your-bucket/sum/inputs/
只读挂载到 VM 本地目录/home/inputs/
,程序可以通过/home/inputs/
路径来访问 input.txt 文件。-w 表示可写挂载,将 OSS 目录
oss://your-bucket/sum/outputs/
挂载为 VM 本地目录/home/outputs/
,写入本地目录/home/outputs/
下的文件 output.txt,会在程序运行完后,被自动上传到 OSS 的对应目录。
查看作业运行状态及运行结果
bcs j # 获取作业列表, 每次获取作业列表后都会将列表缓存下来,一般第一个即是你刚才提交的作业
bcs j 1 # 查看缓存中第一个作业的详情
bcs log 1 # 查看缓存中第一个作业日志
可以使用以下命令查看结果:
bcs o cat oss://your-bucket/sum/outputs/output.txt