本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

普通作業快速開始

更新時間:2024-07-05 23:14

本文檔將介紹如何使用命令列工具來提交一個作業,目的是統計一個記錄檔中“INFO”,”WARN”,”ERROR”,”DEBUG”出現的次數。

命令列工具安裝和配置

作業準備

目的:統計一個記錄檔中“INFO”,”WARN”,”ERROR”,”DEBUG”出現的次數。

該作業包含3個任務:split, count 和 merge:

  • split 任務會把記錄檔分成 3 份。
  • count 任務會統計每份記錄檔中“INFO”,”WARN”,”ERROR”,”DEBUG”出現的次數(count 任務需要配置 InstanceCount 為3,表示同時啟動 3 個 count 任務)。
  • merge 任務會把 count 的結果合并起來。

DAG圖例:

DAG

上傳資料檔案到OSS

下載本例子所需的資料:log-count-data.txt

將 log-count-data.txt 上傳到:oss://your-bucket/log-count/log-count-data.txt

說明
your-bucket 表示您自己建立的 bucket,本例子假設 region 為:cn-shenzhen。
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 命令提供幾個 OSS 常用的功能,使用 bcs o -h 可以查看協助,測試少量資料時使用很方便,但上傳下載大量資料時不建議使用(沒有實現多線程,上傳下載慢。更多關於如何上傳到 OSS,請參考 OSS常用工具匯總

準備任務程式

本例的作業程式是使用 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 任務程式

說明:不需要改動程式

提交作業

編寫作業配置

在 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 格式的描述,請看 多任務

提交命令

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 路徑是不能掛載到同一個本地目錄的,一定要注意。
  • 這裡需要注意的是,如果掛載的是目錄,一定要以“/”結尾。

查看作業運行狀態

bcs j   # 擷取作業列表, 每次擷取作業列表後都會將列表緩衝下來,一般第一個即是你剛才提交的作業
bcs ch 1  # 查看緩衝中作業的狀態,這裡的1是bcs j命令查詢出的剛剛提交的作業序號
bcs log 1 # 查看緩衝中序號為1的作業日誌

查看結果

Job 結束後,可以使用以下命令查看 OSS 的結果。

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

內容應該如下:

{"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}
  • 本頁導讀 (0, M)
  • 作業準備
  • 上傳資料檔案到OSS
  • 準備任務程式
  • 提交作業
  • 編寫作業配置
  • 提交命令
  • 查看作業運行狀態
  • 查看結果
文檔反饋