如果您還沒開通批次運算服務,請先開通。
命令列工具安裝和配置
作業準備
本作業的目的是求和,將 input.txt 中的數字全部加起來,求和後寫入 output.txt。
由於計算比較簡單本作業只需 1 個任務。
本例將 OSS 的目錄掛載為 VM 本地目錄,使用檔案方式操作。
上傳資料檔案到OSS
先自行建立 input.txt。
input.txt的內容(確保一行一個數字):
2
40
51
將 input.txt 上傳到您的 OSS bucket:
bcs o up input.txt oss://your-bucket/sum/inputs/
# 上傳完成後check
bcs o ls oss://your-bucket/sum/inputs/
your-bucket 表示您自己建立的 bucket,本例子假設 region 為:cn-shenzhen。
bcs o
命令提供幾個 OSS 常用的功能,使用bcs o -h
可以查看協助,測試少量資料時使用很方便,但上傳下載大量資料時不建議使用(沒有實現多線程,上傳下載慢。更多關於如何上傳到 OSS,請參考 常用 OSS 工具。
準備任務程式
sum.sh 內容:
#!/bin/bash
t=0
while read LINE
do
t=$(($t+${LINE}))
done < /home/inputs/input.txt
echo $t
echo $t > /home/outputs/output.txt
注意在上一個步驟裡我們把輸入檔案 input.txt 上傳到了oss://your-bucket/sum/inputs/
,在以上程式中 input.txt 是從虛擬機器的/home/inputs/
目錄中讀取,這是通過批次運算中對 OSS 的掛載功能實現的,具體配置將在下一步驟“提交作業”中解釋。
在這個樣本程式裡,我們通過 bash 指令碼完成了求和的功能。您也可以在指令碼裡執行任何其他應用程式,如何把應用程式部署到批次運算環境請參考 使用Docker。
提交作業
在 sum.sh 所在目錄運行下面的命令來提交作業:
bcs sub "sh sum.sh" -p sum.sh -r oss://your-bucket/sum/inputs/:/home/inputs/ -w oss://your-bucket/sum/outputs/:/home/outputs/
這裡使用 預設鏡像和預設執行個體類型。
-r 表示唯讀掛載,將 OSS 目錄
oss://your-bucket/sum/inputs/
唯讀掛載到 VM 本地目錄/home/inputs/
,程式可以通過/home/inputs/
路徑來訪問 input.txt 檔案。-w 表示可寫掛載,將 OSS 目錄
oss://your-bucket/sum/outputs/
掛載為 VM 本地目錄/home/outputs/
,寫入本地目錄/home/outputs/
下的檔案 output.txt,會在程式運行完後,被自動上傳到 OSS 的對應目錄。
查看作業運行狀態及運行結果
bcs j # 擷取作業列表, 每次擷取作業列表後都會將列表緩衝下來,一般第一個即是你剛才提交的作業
bcs j 1 # 查看緩衝中第一個作業的詳情
bcs log 1 # 查看緩衝中第一個作業日誌
可以使用以下命令查看結果:
bcs o cat oss://your-bucket/sum/outputs/output.txt