106
小米
提交作業例子__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-阿裏雲