本文檔將介紹如何使用命令行工具來提交一個(gè)作業(yè),目的是統(tǒng)計(jì)一個(gè)日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出現(xiàn)的次數(shù)。
作業(yè)準(zhǔn)備
目的:統(tǒng)計(jì)一個(gè)日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出現(xiàn)的次數(shù)。
該作業(yè)包含3個(gè)任務(wù):split, count 和 merge:
- split 任務(wù)會(huì)把日志文件分成 3 份。
- count 任務(wù)會(huì)統(tǒng)計(jì)每份日志文件中“INFO”,”WARN”,”ERROR”,”DEBUG”出現(xiàn)的次數(shù)(count 任務(wù)需要配置 InstanceCount 為3,表示同時(shí)啟動(dòng) 3 個(gè) count 任務(wù))。
- merge 任務(wù)會(huì)把 count 的結(jié)果合并起來。
DAG圖例:
上傳數(shù)據(jù)文件到OSS
下載本例子所需的數(shù)據(jù):log-count-data.txt
將 log-count-data.txt 上傳到:oss://your-bucket/log-count/log-count-data.txt
bcs oss upload ./log-count-data.txt oss://your-bucket/log-count/log-count-data.txt
bcs oss cat oss://your-bucket/log-count/log-count-data.txt # 檢查是否上傳成功
bcs o
命令提供幾個(gè) OSS 常用的功能,使用 bcs o -h
可以查看幫助,測(cè)試少量數(shù)據(jù)時(shí)使用很方便,但上傳下載大量數(shù)據(jù)時(shí)不建議使用(沒有實(shí)現(xiàn)多線程,上傳下載慢。更多關(guān)于如何上傳到 OSS,請(qǐng)參考 常用 OSS 工具。
準(zhǔn)備任務(wù)程序
本例的作業(yè)程序是使用 python 編寫的, 下載本例所需的程序:log-count.tar.gz
使用下面的目錄解壓:
mkdir log-count && tar -xvf log-count.tar.gz -C log-count
解壓后的log-count/目錄結(jié)構(gòu)如下
log-count
|-- conf.py # 配置
|-- split.py # split 任務(wù)程序
|-- count.py # count 任務(wù)程序
|-- merge.py # merge 任務(wù)程序
說明:不需要改動(dòng)程序
提交作業(yè)
編寫作業(yè)配置
在 log-count 的父目錄下創(chuàng)建一個(gè)文件:job.cfg(此文件要與 log-count 目錄平級(jí)), 內(nèi)容如下:
[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
這里描述了一個(gè)多任務(wù)的作業(yè),任務(wù)的執(zhí)行順序是 split>count>merge。
關(guān)于 cfg 格式的描述,請(qǐng)看 多任務(wù)支持 。
提交命令
bcs sub --file job.cfg -r oss://your-bucket/log-count/:/home/input/ -w oss://your-bucket/log-count/:/home/output/
- -r 和 -w 表示只讀掛載和可寫映射,具體請(qǐng)查看 OSS 掛載 。
- 同一個(gè) OSS 路徑,可以掛載到不同的本地目錄。但是不同的 OSS 路徑是不能掛載到同一個(gè)本地目錄的,一定要注意。
- 這里需要注意的是,如果掛載的是目錄,一定要以“/”結(jié)尾。
查看作業(yè)運(yùn)行狀態(tài)
bcs j # 獲取作業(yè)列表, 每次獲取作業(yè)列表后都會(huì)將列表緩存下來,一般第一個(gè)即是你剛才提交的作業(yè)
bcs ch 1 # 查看緩存中作業(yè)的狀態(tài),這里的1是bcs j命令查詢出的剛剛提交的作業(yè)序號(hào)
bcs log 1 # 查看緩存中序號(hào)為1的作業(yè)日志
查看結(jié)果
Job 結(jié)束后,可以使用以下命令查看 OSS 的結(jié)果。
bcs oss cat oss://your-bucket/log-count/merge_result.json
內(nèi)容應(yīng)該如下:
{"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}