1013
財經資訊
多任務支持__命令行工具_批量計算-阿裏雲
可以使用 config 文件指定多個任務和依賴關係,然後使用下麵的命令提交:
bcs sub --file job.cfg # 文件名可以隨意定
1. 單個任務支持
job.cfg 內容:
[taskname]
cmd=python test.py
job_name=demo
cluster=img=img-ubuntu:type=bcs.a2.large
description=test job
nodes=1
pack=./src/
read_mount=oss://bucket/input/:/home/input/
write_mount=oss://bucket/output/:/home/output/
- 這個配置文件含有一個section: [taskname], 這個taskname將作為task名提交。
- 除了cmd 和 job_name 外,其他的選項, 都是通過 bcs sub -h 看到的長選項名稱, 等同於使用命令—${option}。
2. 多任務支持
config 文件也可以配置多個任務,可以指定任務間依賴關係。
job.cfg 內容:
[DEFAULT]
job_name=log-count
description=demo
force=True
deps=split->count;count->merge
#下麵是任務公共配置
env=public_key:value,key2:value2
read_mount=oss://bucket/input/:/home/input/
write_mount=oss://bucket/output/:/home/output/
pack=./src/
[split]
cmd=python split.py
cluster=img=img-ubuntu:type=bcs.a2.large
nodes=1
[count]
cmd=python count.py
cluster=img=img-ubuntu:type=bcs.b4.xlarge
nodes=3
[merge]
cmd=python merge.py
cluster=img=img-ubuntu:type=bcs.a2.large
nodes=1
- [DEFAULT] section中指定job級別的配置, 其他section指定task配置, 其他section名為task名
- 配置項優先級: 直接在命令行中的—${option}; 優先級最高,其次task section中指定的,最後是DEFAULT section中指定的。
- env, read_mount, write_mount, mount 這4個配置項, 可merge, 其他配置項遇到高優先級直接被覆蓋
- deps=split->count;count->merge 指定依賴, split任務運行完成後,再運行count,count運行完成後,再運行merge.
- cluster配置用的img和type,不同region支持是不一樣的,請根據當前region具體情況設置。
(1) 關於deps
如果DAG如下:
則deps配置:
deps=split->count1,count2;count1->merge;count2->merge
每個dep是一對多的形式: task1->task2,taks3
多個task之間用逗號隔開,多個dep用分號隔開。
(2) 關於 pack
./src/
|-- split.py
|-- ...
如果指定目錄:pack=./src/, 則打包src下麵的所有文件到 worker.tar.gz, 指定cmd時,需要從 ./src/目錄下開始指定,如: cmd=python split.py
如果指定文件: pack=./src/split.py, 則隻打包文件到worker.tar.gz, 指定cmd時,隻需要指定文件名, 如: cmd=python split.py
pack可以在[DEFAULT]這個section中配置,也可以在每個task中配置, 當然也可以在命令行中指定。
(3) 關於 mount
read_mount 為隻讀掛載,將oss目錄掛載到運行程序的虛擬機的文件係統中,linux可以掛載為一個目錄,window下隻能掛載為一個Driver,如:”E:”。
如果掛載多個,可以使用英文逗號隔開,如:read_mount=oss://bucket/input/:/home/input/,oss://bucket/input2/:/home/input2/
。write_mount和mount也是如此。
write_mount 為可寫掛載,將oss目錄映射到運行程序的虛擬機的目錄,隻能映射為一個目錄,如果這個目錄不存在,需要程序創建一下。寫入到這個目錄的所有文件將會被上傳到相應的oss目錄。
mount是同時指定read_mount和write_mount到相同的目錄,一般不推薦使用。
(4) 關於cluster
有2種格式:
AutoCluster格式:
cluster=img=<img-id>:type=<instance-type>
AutoCluster指定任務運行時會自動創建相應配置的集群,運行完成後自動釋放掉。
Cluster格式:
cluster=<cluster-id>
運行:bcs c 可以查看我的集群,如果沒有,可以自行創建。
如:
bcs cc <cluster-name> -i <img-id> -t <instance-type> -n 3
- -n 3 表示期望啟動3台虛擬機來運行程序
- -i img-id 指定image ID
- -t instance-type 指定實例類型,可以使用 bcs it 查看可用的實例類型
- 其他選項可以使用 bcs cc -h 查看說明。
使用集群可以大大縮短作業啟動時間,但是由於集群是一直運行著的,會一直計費,請自行權衡。
(5) 關於docker
格式如:
docker=myubuntu@oss://bucket/dockers/
使用docker,需要支持docker的ImageId才能運行成功。如果你沒有指定cluster,默認的imageId是支持Docker的,或者你顯式指定也行,或者使用clusterId,但是這個cluster的ImageId也要支持docker才行。
這裏的myubuntu全名為:localhost:5000/myubuntu,製作docker鏡像的時候,前綴必須為localhost:5000/, 因此這裏可以省略掉前綴。後麵的oss目錄,是OSS私有docker鏡像倉庫目錄,詳情請看如何使用docker。
(6) 關於nodes
nodes 表示指定使用多少台虛擬機運行任務程序。
(7) 關於force
force 為 True,表示如果某台虛擬機運行程序出錯,整個作業不會失敗,繼續運行。為False,則整個作業失敗。默認為False。
最後更新:2016-12-05 17:56:03
上一篇:
查看作業__命令行工具_批量計算-阿裏雲
下一篇:
多實例並發__命令行工具_批量計算-阿裏雲
服務端簽名直傳並設置上傳回調__Web端直傳實踐_最佳實踐_對象存儲 OSS-阿裏雲
管理對象生命周期__管理文件_開發人員指南_對象存儲 OSS-阿裏雲
RouterInterfaceItemType__數據類型_API 參考_雲服務器 ECS-阿裏雲
隻讀實例延遲切斷__開發手冊_分布式關係型數據庫 DRDS-阿裏雲
LogSearch-查詢__Getting-Started_日誌服務-阿裏雲
查詢API分組詳情__API分組相關接口_API_API 網關-阿裏雲
C-SDK使用(FreeRTOS)__SDK使用參考_設備端接入手冊_阿裏雲物聯網套件-阿裏雲
新增媒體__媒體接口_API使用手冊_視頻點播-阿裏雲
Java沙箱__MapReduce_大數據計算服務-阿裏雲
如何確保負載均衡後端的多台ECS之間的數據同步呢?__ECS配置相關_技術運維分享_負載均衡-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲