批量计算 简单开始

这篇说说腾讯云 Batch 的使用方法,通过运行 Python 脚本提交作业,计算斐波拉契数列前20项和,并演示查看执行状态与结果。 提交作业:执行 1_SimpleStart.py 脚本,成功返回 JobId。 查看状态:使用 DescribeJob 命令,状态包括 STARTING、RUNNING、SUCCEED、FAILED。 查看结果:在对象存储 logs 文件中查看标准输出或错误日志。

相关产品
批量计算 产品页,含版本规格、价格与购买入口。

一、操作场景

你可通过这篇快速了解 Batch 的使用方法及计算能力。

二、前提条件

请根据 前置准备 里的说明完成准备,并了解如何配置自定义信息里的通用部分。

三、查看 Demo

注意:说明:

注意:请在 前置准备 中修改 1_SimpleStart.py 文件自定义信息的通用部分。

使用编辑器打开 1_SimpleStart.py 文件

# custom (Change to your info)imageId = "img-m4q71qnf"Application = { "DeliveryForm": "LOCAL", "Command": " python -c \\"fib=lambda n:1 if n<=2 else fib(n-1)+fib(n-2); print(fib(20))\\" "}StdoutRedirectPath = "your cos path"StderrRedirectPath = "your cos path"

自定义部分除 Application 以外,都已在前置准备中说明, Application 中配置请参考下表:

配置项 描述
DeliveryForm 应用程序的交付方式,包括软件打包、容器镜像、CVM 内部直接运行三种,这里 LOCAL 代表的是 CVM 内部直接运行。
Command 任务启动命令,这里执行的是一段 Python 脚本。以1为起点,将斐波拉契数列的前20个数字求和并输出到 StdOutput 里。

四、提交作业

执行以下命令,执行 Python 脚本。
Demo 中已经通过 Python 脚本 + Batch 命令行工具的形式封装了提交作业流程。

python 1_SimpleStart.py

返回结果如下所示,则表示提交成功。

{ "RequestId": "393292f4-5583-48ad-a9f5-f673138ea637", "JobId": "job-o0xxxxxq7"}

若未提交成功,请检查返回值排查错误,也可以通过 联系我们 中的 QQ 群向管理员咨询。

五、查看状态

·执行以下命令,通过 DescribeJob 查看执行状态:

$ tccli batch DescribeJob –version 2017-03-12 –JobId job-xxx

注意:说明:

注意:–JobId 请替换成 提交作业 中的返回的 JobId。

返回信息如下(部分已省略):

{ "EndTime": "2019-10-08T04:06:58Z", "JobState": "SUCCEED", "TaskInstanceMetrics": { … }, "Zone": "ap-guangzhou-2", "TaskMetrics": { … }, "JobName": "TestJob", "Priority": 1, "RequestId": "7a5f4c94-1357-486c-9c48-8286ba01b5b2", "TaskSet": [ … ], "StateReason": null, "JobId": "job-o0xxxxxq7", "DependenceSet": [], "CreateTime": "2019-10-08T04:05:54Z"}

·返回信息包含下列常见执行状态:

·STARTING:启动中

·RUNNING:执行中

·SUCCEED:执行成功

·FAILED:执行失败

六、查看结果

1. 登录对象存储控制台,单击左侧导航栏中的 存储桶列表。

2. 选择已创建的 Bucket ID >文件列表 > logs 文件,执行结果均保存在 logs 文件中。如下:


·成功时请查看标准输出 stdout.job-xxx.xxxx.0.log,内容如下:

6765

·失败时请查看标准错误 stderr.job-xxx.xxxx.0.log,可能的内容如下:

/bin/sh: -c: line 0: syntax error near unexpected token `('/bin/sh: -c: line 0: ` python -c \\"fib=lambda n:1 if n<=2 else fib(n-1)+fib(n-2); print(fib(20))\\" '

赞 (0)
上一篇 4天前
下一篇 4天前