当前位置:主页 > 查看内容

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

发布时间:2021-09-19 00:00| 位朋友查看

简介:如果您还没开通批量计算服务,请先开通。 命令行工具安装和配置 命令行工具安装和配置 作业准备 本作业的目的是求和,将 input.txt 中的数字全部加起来,求和后写入 output.txt。 由于计算比较简单本作业只需 1 个任务。 本例将 OSS 的目录挂载为 VM 本地目……

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

命令行工具安装和配置

命令行工具安装和配置

作业准备

本作业的目的是求和,将 input.txt 中的数字全部加起来,求和后写入 output.txt。

由于计算比较简单本作业只需 1 个任务。

本例将 OSS 的目录挂载为 VM 本地目录,使用文件方式操作。

上传数据文件到OSS

先自行创建 input.txt。

input.txt的内容(确保一行一个数字):

  1. 2
  2. 40
  3. 51

将 input.txt 上传到您的 OSS bucket:

  1. bcs o up input.txt oss://your-bucket/sum/inputs/
  2. # 上传完成后check
  3. bcs o ls oss://your-bucket/sum/inputs/
  • your-bucket 表示您自己创建的 bucket,本例子假设 region 为: cn-shenzhen。
  • bcs o 命令提供几个 OSS 常用的功能,使用 bcs o -h 可以查看帮助,测试少量数据时使用很方便,但上传下载大量数据时不建议使用(没有实现多线程,上传下载慢。更多关于如何上传到 OSS,请参考 常用 OSS 工具

准备任务程序

sum.sh 内容:

  1. #!/bin/bash
  2. t=0
  3. while read LINE
  4. do
  5. t=$(($t+${LINE}))
  6. done < /home/inputs/input.txt
  7. echo $t
  8. echo $t > /home/outputs/output.txt

注意在上一个步骤里我们把输入文件 input.txt 上传到了oss://your-bucket/sum/inputs/,在以上程序中 input.txt 是从虚拟机的/home/inputs/目录中读取,这是通过批量计算中对 OSS 的挂载功能实现的,具体配置将在下一步骤“提交作业”中解释。

在这个示例程序里,我们通过 bash 脚本完成了求和的功能。您也可以在脚本里执行任何其他应用程序,如何把应用程序部署到批量计算环境请参考 自定义镜像使用 Docker

提交作业

在 sum.sh 所在目录运行下面的命令来提交作业:

  1. 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 的对应目录。

查看作业运行状态及运行结果

  1. bcs j # 获取作业列表, 每次获取作业列表后都会将列表缓存下来,一般第一个即是你刚才提交的作业
  2. bcs j 1 # 查看缓存中第一个作业的详情
  3. bcs log 1 # 查看缓存中第一个作业日志

可以使用以下命令查看结果:

  1. bcs o cat oss://your-bucket/sum/outputs/output.txt

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐