操作场景
远程映射是 Batch 对存储使用相关的辅助功能,能够将 COS、CFS 等远程存储映射到本地的文件夹上。
前提条件
操作步骤
上传输入数据文件
1. 创建
number.txt
文件,内容如下:123456789
2. 登录对象存储控制台,单击左侧导航栏中的 存储桶列表。
3. 选择已创建的 Bucket ID> 文件列表 > input 文件,上传
number.txt
。如下图所示:
查看和修改 Demo
说明:
使用编辑器打开
3_StoreMapping.py
文件# custom (Change to your info)imageId = "img-m4q71qnf"Application = {"DeliveryForm": "PACKAGE","Command": "python ./codepkg/sumnum.py","PackagePath": "http://batchdemo-xxxxxxxxx.cos.ap-guangzhou.myqcloud.com/codepkg/codepkg.tgz"}StdoutRedirectPath = "your cos path"StderrRedirectPath = "your cos path"InputMapping = {"SourcePath": "cos://batchdemo-xxxxxxxxx.cos.ap-guangzhou.myqcloud.com/input/","DestinationPath": "/data/input/"}OutputMapping = {"SourcePath": "/data/output/","DestinationPath": "your output remote path"}
配置项 | 描述 |
Application | Command 改为执行 sumnum.py。 |
InputMapping | 输入映射。 SourcePath 远程存储地址:修改为前置准备里 input 文件夹的地址,请参见 获取 COS 相关访问域名。 DestinationPath 本地目录:暂不修改。 |
OutputMapping | 输出映射。 SourcePath 本地目录:暂不修改。 DestinationPath 远程存储地址:修改为前置准备里 output 文件夹的地址,请参见 获取 COS 相关访问域名。 |
sumnum.py 的内容如下:
打开文件
input/number.txt
,并把每一行的数字相加,然后把结果写到 output/result.txt
里。import osinputfile = "/data/input/number.txt"outputfile = "/data/output/result.txt"def readFile(filename):total = 0fopen = open(filename, 'r')for eachLine in fopen:total += int(eachLine)fopen.close()print "total = ",totalfwrite = open(outputfile, 'w')fwrite.write(str(total))fwrite.close()print("Local input file is ",inputfile)readFile(inputfile)
提交作业
执行以下命令,执行 Python 脚本。
Demo 中已经通过 Python 脚本 + Batch 命令行工具的形式封装了提交作业流程。
python 3_StoreMapping.py
返回结果如下所示,则表示提交成功。
{"RequestId": "8eaeb01e-94a6-41a1-b40f-95f15417c0b4","JobId": "job-97smiptb"}
查看状态
查看结果
1. 登录对象存储控制台,单击左侧导航栏中的 存储桶列表。
2. 选择已创建的 Bucket ID> 文件列表 > output 文件。如下图所示:
Batch 会将输出数据从本地目录靠白道远程存储目录中,
3_StoreMapping.py
的执行结果保存在 result.txt
中,result.txt
将自动同步到 COS 中。
result.txt
内容如下所示:45