全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
批量计算

命令行快速开始2

更新时间:2017-06-20 14:12:52

命令行快速开始例子2

本文档将介绍如何使用命令行工具来提交一个作业,目的是统计一个日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出现的次数。

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

步骤预览

  • 命令行工具安装和配置
  • 作业准备
    • 上传数据文件到OSS
    • 准备任务程序
  • 提交作业
  • 查看作业运行状态
  • 查看运行结果

1. 命令行工具安装和配置

命令行工具安装和配置

2. 作业准备

目的:统计一个日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出现的次数。

该作业包含3个任务: split, count 和 merge:

  • split 任务会把日志文件分成 3 份。
  • count 任务会统计每份日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出现的次数 (count 任务需要配置InstanceCount为3,表示同时启动3个 count 任务)。
  • merge 任务会把 count 的结果合并起来。

DAG图例:

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.
  1. bcs oss upload ./log-count-data.txt oss://your-bucket/log-count/log-count-data.txt
  2. bcs oss cat oss://your-bucket/log-count/log-count-data.txt # 检查是否上传成功

(2) 准备任务程序

本例子的作业程序是使用python编写的, 下载本例子所需的程序: log-count.tar.gz

使用下面的目录解压:

  1. mkdir log-count && tar -xvf log-count.tar.gz -C log-count

解压后的log-count/目录结构如下

  1. log-count
  2. |-- conf.py # 配置
  3. |-- split.py # split 任务程序
  4. |-- count.py # count 任务程序
  5. |-- merge.py # merge 任务程序
  • 注意:不需要改动程序

3. 提交作业

(1) 编写作业配置

在log-count的父目录下创建一个文件: job.cfg(此文件要与log-count目录平级), 内容如下:

  1. [DEFAULT]
  2. job_name=log-count
  3. description=demo
  4. pack=./log-count/
  5. deps=split->count;count->merge
  6. [split]
  7. cmd=python split.py
  8. [count]
  9. cmd=python count.py
  10. nodes=3
  11. [merge]
  12. cmd=python merge.py

这里描述了一个多任务的作业,任务的执行顺序是 split->count->merge。

(2) 提交命令

  1. bcs sub --file job.cfg -r oss://your-bucket/log-count/:/home/input -w oss://your-bucket/log-count/:/home/output
  • -r 和 -w 表示只读挂载和可写映射,具体请看这里: OSS挂载
  • 同一个oss路径,可以挂载到不同的本地目录。但是不同的oss路径是不能挂载到同一个本地目录的,一定要注意。

4. 查看作业运行状态

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

5. 查看结果

Job结束后,可以使用以下命令查看存在OSS中的结果。

  1. bcs oss cat oss://your-bucket/log-count/merge_result.json

内容应该如下:

  1. {"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}
本文导读目录