DAG作業(yè)快速開始
如果您還沒開通批量計算服務,請先開通。
命令行工具安裝和配置
作業(yè)準備
本作業(yè)的目的是求和,將 input.txt 中的數(shù)字全部加起來,求和后寫入 output.txt。
由于計算比較簡單本作業(yè)只需 1 個任務。
本例將 OSS 的目錄掛載為 VM 本地目錄,使用文件方式操作。
上傳數(shù)據(jù)文件到OSS
先自行創(chuàng)建 input.txt。
input.txt的內(nèi)容(確保一行一個數(shù)字):
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 表示您自己創(chuàng)建的 bucket,本例子假設 region 為:cn-shenzhen。
bcs o
命令提供幾個 OSS 常用的功能,使用bcs o -h
可以查看幫助,測試少量數(shù)據(jù)時使用很方便,但上傳下載大量數(shù)據(jù)時不建議使用(沒有實現(xiàn)多線程,上傳下載慢。更多關于如何上傳到 OSS,請參考 常用 OSS 工具。
準備任務程序
sum.sh 內(nèi)容:
#!/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 的掛載功能實現(xiàn)的,具體配置將在下一步驟“提交作業(yè)”中解釋。
在這個示例程序里,我們通過 bash 腳本完成了求和的功能。您也可以在腳本里執(zhí)行任何其他應用程序,如何把應用程序部署到批量計算環(huán)境請參考 自定義鏡像和 使用 Docker。
提交作業(yè)
在 sum.sh 所在目錄運行下面的命令來提交作業(yè):
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 的對應目錄。
查看作業(yè)運行狀態(tài)及運行結(jié)果
bcs j # 獲取作業(yè)列表, 每次獲取作業(yè)列表后都會將列表緩存下來,一般第一個即是你剛才提交的作業(yè)
bcs j 1 # 查看緩存中第一個作業(yè)的詳情
bcs log 1 # 查看緩存中第一個作業(yè)日志
可以使用以下命令查看結(jié)果:
bcs o cat oss://your-bucket/sum/outputs/output.txt