提交作业例子__Docker_操作指南_批量计算-阿里云
步骤
- 提交作业简介
- 作业准备
- 上传数据文件到OSS
- 准备任务程序
- 提交作业
- 编写作业配置
- 提交命令
- 查看作业运行状态
- 查看运行结果
1. 提交作业简介
在 BatchCompute 中, 提交作业时使用 docker 与普通作业基本相同, 只有2点区别:
(1) 使用支持Docker的ImageId
您只需要将任务描述的 ImageId 指定为 BatchCompute 的公共镜像的Id(支持Docker的镜像, ID为img-ubuntu),或者使用设置了该ImageId的 Cluster的ClusterId.
(2) 在task描述的环境变量(EnvVars)中增加如下两个参数:
字段名称 | 描述 | 是否可选 |
---|---|---|
BATCH_COMPUTE_DOCKER_IMAGE | Docker镜像名称 | 可选 |
BATCH_COMPUTE_DOCKER_REGISTRY_OSS_PATH | Docker镜像在 OSS-Registry 中的存储路径 | 可选 |
- 如果没有 BATCH_COMPUTE_DOCKER_IMAGE 参数,表示不使用 docker ,这时 BATCH_COMPUTE_DOCKER_REGISTRY_OSS_PATH 将被忽略。
- 如果有 BATCH_COMPUTE_DOCKER_IMAGE, 则表示使用 docker。
2. 作业准备
本作业程序使用python编写,目的是统计一个日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出现的次数。
该作业包含3个任务: split, count 和 merge
- split 任务会把日志文件分成 3 份。
- count 任务会统计每份日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出现的次数 (count 任务需要配置InstanceCount为3,表示同时启动3个 count 任务)。
- merge 任务会把 count 的结果统一合并起来。
DAG图例:
(1) 上传数据文件到OSS
下载本例子所需的数据: log-count-data.txt
将 log-count-data.txt 上传到:
oss://your-bucket/log-count/log-count-data.txt
- your-bucket如表示您自己创建的bucket,本例子假设region为: cn-shenzhen.
- 如何上传到OSS,请参考OSS上传文档。
(2) 准备任务程序
本例子的作业程序是使用python编写的, 下载本例子所需的程序: log-count.tar.gz
使用下面的目录解压:
mkdir log-count && tar -xvf log-count.tar.gz -C log-count
解压后的log-count/目录结构如下
log-count
|-- conf.py # 配置
|-- split.py # split 任务程序
|-- count.py # count 任务程序
|-- merge.py # merge 任务程序
- 注意:不需要改动程序
2. 提交作业
提交作业可以使用 python sdk 或者 java sdk, 或者控制台提交,本例子使用命令行工具提交。
(1) 编写作业配置
在log-count的父目录下创建一个文件: job.cfg(此文件要与log-count目录平级), 内容如下:
[DEFAULT]
job_name=log-count
description=demo
pack=./log-count/
deps=split->count;count->merge
[split]
cmd=python split.py
[count]
cmd=python count.py
nodes=3
[merge]
cmd=python merge.py
这里描述了一个多任务的作业,任务的执行顺序是 split->count->merge。
- 关于cfg格式的描述,请看多任务支持
(2) 提交命令
bcs sub --file job.cfg -r oss://your-bucket/log-count/:/home/input -w oss://your-bucket/log-count/:/home/output --docker localhost:5000/myubuntu@oss://your-bucket/dockers/
- -r 和 -w 表示只读挂载和可写映射,具体请看这里: OSS挂载
- 同一个oss路径,可以挂载到不同的本地目录。但是不同的oss路径是不能挂载到同一个本地目录的,一定要注意。
- —docker 表示使用docker,格式: image_name@storage_oss_path, 会自动将docker名称和仓库地址配置到环境变量。
4. 查看作业运行状态
bcs j # 获取作业列表, 每次获取作业列表后都会将列表缓存下来,一般第一个即是你刚才提交的作业
bcs ch 1 # 查看缓存中第一个作业的状态
bcs log 1 # 查看缓存中第一个作业日志
5. 查看结果
Job结束后,可以使用以下命令查看存在OSS中的结果。
bcs oss cat oss://your-bucket/log-count/merge_result.txt
内容应该如下:
{"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}
最后更新:2016-11-23 16:04:15
上一篇:
前言__Docker_操作指南_批量计算-阿里云
下一篇:
本地调试__Docker_操作指南_批量计算-阿里云
版本历史__产品简介_Quick BI-阿里云
数据安全和用户隐私是第一原则 阿里云发布首个企业云安全架构
授权服务账号__帐号管理_用户指南_云数据库 RDS 版-阿里云
金融云开通使用流程__金融云新手上路_金融云-阿里云
ListLogstore__日志库相关接口_API-Reference_日志服务-阿里云
切换RDS实例的主备__实例管理_API 参考_云数据库 RDS 版-阿里云
切换SQL采集状态__日志管理_API 参考_云数据库 RDS 版-阿里云
kafka用户迁移__常见问题_日志服务-阿里云
查询密钥绑定的API__后端签名密钥相关接口_API_API 网关-阿里云
PermissionType__数据类型_API 参考_云服务器 ECS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云