114
windows
並發__操作指南_批量計算-阿裏雲
一個作業(Job)中可以有多個任務(Task),一個任務可以指定在多個實例(Instance)上運行程序。
如何並發?
請看下麵 job description json 例子:
{
"DAG": {
...
"Tasks": {
...
"count": {
"InstanceCount": 3, //指定需要實例數:3台VM
"LogMapping": {},
"AutoCluster": {
"ResourceType": "OnDemand",
"ImageId": "img-ubuntu",
"InstanceType": "bcs.a2.large"
},
"Parameters": {
"Command": {
"EnvVars": {},
"CommandLine": "python count.py",
"PackagePath": "oss://your-bucket/log-count/worker.tar.gz"
},
"InputMappingConfig": {
"Lock": true
},
"StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
"StderrRedirectPath": "oss://your-bucket/log-count/logs/"
},
"OutputMapping": {},
"MaxRetryCount": 0,
"Timeout": 21600,
"InputMapping": {}
}
}
},
"Description": "batchcompute job",
"Priority": 0,
"JobFailOnInstanceFail": true,
"Type": "DAG",
"Name": "log-count"
}
任務count中配置了InstanceCount為3, 表示需要實例數3台, 即在3台VM上運行這個任務的程序。
並發處理不同片段的數據
3台VM上運行的任務程序都是一樣的,如何讓它處理不同的數據呢?
在任務程序中使用環境變量: BATCH_COMPUTE_DAG_INSTANCE_ID(實例ID) 來區分,可以處理不同片段的數據。
以下是 count.py 代碼片段:
...
# instance_id: should start from 0
instance_id = os.environ['BATCH_COMPUTE_DAG_INSTANCE_ID']
...
filename = 'part_%s.txt' % instance_id
...
# 1. download a part
oss_tool.download_file('%s/%s/%s.txt' % (pre, split_results, instance_id ), filename)
...
# 3. upload result to oss
upload_to = '%s/count_results/%s.json' % (pre, instance_id )
print('upload to %s' % upload_to)
oss_tool.put_data(json.dumps(m), upload_to)
...
完整例子請看快速開始例子。
最後更新:2016-12-05 17:50:28
上一篇:
多任務__操作指南_批量計算-阿裏雲
下一篇:
前言__Docker_操作指南_批量計算-阿裏雲
DescribeCACertificates__ServerCertificate相關API_API 參考_負載均衡-阿裏雲
刪除APP錄製配置__直播流操作接口_API 手冊_CDN-阿裏雲
集群列表頁__集群_用戶指南_E-MapReduce-阿裏雲
備案審核需要多長時間?__備案基礎介紹_備案須知_備案-阿裏雲
創建應用__應用管理_用戶指南_容器服務-阿裏雲
API 數據源__準備數據源_用戶指南_業務實時監控服務 ARMS-阿裏雲
消費消息__隊列使用幫助_控製台使用幫助_消息服務-阿裏雲
創建災備實例__擴展實例_快速入門(MySQL)_雲數據庫 RDS 版-阿裏雲
MySQLReader__Reader插件_使用手冊_數據集成-阿裏雲
查詢App錄製配置__直播流操作接口_API 手冊_CDN-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲