全部产品
Search
文档中心

批量计算:DAG作业快速开始

更新时间:Jan 09, 2023

如果您还没开通批量计算服务,请先开通。

命令行工具安装和配置

命令行工具安装和配置

作业准备

本作业的目的是求和,将 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