多实例并发

说明

请注意替换例子中 your-bucket 为真实的 bucket。

1. 说明:

本例子将启动一个作业(job),该作业包含一个任务(task), 该任务将启动2个instance,并行在2个VM中运行。

2个VM中运行的程序是一样的,都是任务sum中指定的命令”python sum.py”, 程序中使用环境变量中的 BATCH_COMPUTE_DAG_INSTANCE_ID 获取InstanceId, 用来区分Input数据。

InstanceId是从0开始递增的。

每个VM中任务程序处理完 ${InstanceId}-input.txt 数据后,将结果写入到 /home/outputs/${InstanceId}-output.txt 文件, 系统会自动上传到对应的OSS目录:oss://your-bucket/sum/outputs/ 目录下。

当2个VM中的程序都运行完成后,任务结束,作业结束。

例子可以在这里下载

2. 上传数据文件到OSS

数据文件在 data 目录下: 0-input.txt和1-input.txt。

0-input.txt的内容:

1 20 45

1-input.txt的内容:

5 85 103

将 0-input.txt和1-input.txt 上传到:

oss://your-bucket/sum/inputs/0-input.txt
oss://your-bucket/sum/inputs/1-input.txt

可以使用下面的命令上传:

cd data
bcs oss upload 0-input.txt oss://your-bucket/sum/inputs/
bcs oss upload 1-input.txt oss://your-bucket/sum/inputs/

# 查看是否上传成功
bcs oss ls oss://your-bucket/sum/inputs/

3. 启动任务

bcs sub --file job.cfg

4. 查看结果

结果数据在 oss://your-bucket/sum/outputs/中。

可以用下面的命令查看:

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