python如何提交作業 提交作業

2021-10-11 10:10:54 字數 3645 閱讀 4222

1. 提交作業

1.1 簡單作業

如果您已經按照準備工作裡的步驟配置了預設映象、例項型別和網路型別,可以通過以下的簡單命令提交乙個作業。

bcs sub"echo 123"# 提交乙個單任務作業,執行: echo 123

如果您沒有對命令列工具進行過預設配置,需要在提交的時候指定更多的選項。

bcs sub"echo 123"-t ecs.sn1ne.large-i img-ubuntu-vpc--vpc_cidr_block192.168.0.0/16

文件的其餘示例假設您已經執行了預設的配置步驟。

1.2. python指令碼作業bcs sub"python test.py"-p./test.py# -p 表示在作業提交前,將 test.py 打包到 worker.tar.gz,然後上傳到oss.

1.3. 多檔案作業

一般這種情況:src目錄下有多個檔案, 如:

src|--test.py

|--dep.py

而 test.py 需要依賴dep.py, 則可以將整個目錄一起打包

bcs sub"python test.py"-p./src/# 將src目錄下的所有檔案打包到 worker.tar.gz, 然後上傳到oss,再提交作業

當然,您也可以一次指定多個檔案(逗號隔開):

cd src#進入 src 目錄

bcs sub"python test.py"-p test.py,dep.py# 將這個2個檔案打包到 worker.tar.gz

如果您沒有進入src目錄, 則需要這樣提交:

bcssub"python test.py"-p src/test.py,src/dep.py# 將這個2個檔案打包到 worker.tar.gz

然後您可以使用命令檢視worker.tar.gz的內容:

tar-tvf worker.tar.gz

應該是這樣的:

test.py

dep.py

1.4. 使用掛載任務程式的方式提交作業

如果我把 test.py 上傳到 oss://mybucket/test/test.py,我可以把oss://mybucket/test/ 掛載到vm的本地目錄如: /home/admin/test/, 然後我就可以使用 「python /home/admin/test/test.py」 命令執行了。

這麼提交即可:

bcssub"python /home/admin/test/test.py"-r oss://mybucket/test/:/home/admin/test/

其中引數 -r oss://mybucket/test/:/home/admin/test/ ,表示唯讀掛載,將oss://mybucket/test/ 掛載到 /home/admin/test/.

這樣就無需打包成 worker.tar.gz了。

2. 其他技巧

2.1. 掛載輸入資料

假如我的資料已經上傳到 oss://my-bucket/inputs/ 目錄下面.

bcssub"python test.py"-p./src/-r oss://my-bucket/inputs/:/home/admin/inputs/-r 表示唯讀掛載,將 oss目錄oss://my-bucket/inputs/ 掛載到 /home/admin/inputs/, 你的程式可以向讀取本地檔案一樣讀取/home/admin/inputs/目錄下面的檔案

所有掛載的目錄,不能是系統目錄, 如: /bin, /usr等,建議掛載到/home/下面.

如要掛載多個目錄,使用英文逗號隔開, 如: -r oss://my-bucket/inputs/:/home/admin/inputs/,oss://my-bucket/inputs2/:/home/admin/inputs2/

2.2. 程式執行結果使用掛載自動上傳

我的程式會將執行的結果寫到 /home/admin/outputs/ 目錄下,我想把這個目錄下面的所有資料上傳到oss。

bcssub"python test.py"-p./src/-r oss://my-bucket/inputs/:/home/admin/inputs/ -w oss://my-bucket/outputs/:/home/admin/outputs/-w 表示可寫掛載,寫入到這個目錄下的資料,將會在程式執行完後,由系統自動上傳到對應的 oss 目錄下。

所有掛載的目錄,不能是系統目錄, 如: /bin, /usr等,建議掛載到/home/下面.

如要掛載多個目錄,使用英文逗號隔開, 如: -w oss://my-bucket/outputs/:/home/admin/outputs/,oss://my-bucket/outputs2/:/home/admin/outputs2/

2.3. 使用自定義映象和例項型別bcssub"python test.py"-p./src/-c img=img-ubuntu-vpc:type=ecs.sn1ne.large-c 表示使用集群,後面可以指定集群id,也可以指定autocluster配置。 其中autocluster配置格式如:img=$:type=$。

img=img-ubuntu-vpc 表示使用映象,您也可以指定自定義映象。

type=ecs.sn1ne.large 表示使用例項型別,可以用bcs it檢視支援的例項型別列表。

可以只指定-c img=$ 或者只指定 -c type=$, 不指定則使用使用預設映象和預設例項型別。

2.4. 使用集群bcssub"python test.py"-p./src/-c cls-******x-c cls-******x 表示使用集群id cls-******x

更多請看如何使用集群。

2.5. 使用dockerbcssub"python test.py"-p./src/--docker myubuntu@oss://my-bucket/dockers/myubuntu 是 localhost:5000/myubuntu 的簡寫, oss://my-bucket/dockers/ 表示oss docker 映象倉庫的路徑。

有關如何使用docker的詳細資訊請參考使用 docker。

2.6. 自定義磁碟bcssub"python test.py"--disk system:cloud_efficiency:50,data:cloud_efficiency:200只在使用autocluster時有效, 支援系統盤配置和一塊資料盤(可選)的配置, 使用方法如: —disk system:cloud_efficiency:40,data:cloud_efficiency:50:/home/disk1, 中間用逗號隔開。也可以只指定系統盤,或只指定資料盤。如:—disk system:cloud_efficiency:40

預設只掛載乙個系統盤,大小為40gb。

系統盤配置格式: system:< cloud_efficiency|cloud_ssd>:<40-500>, 舉例: system:cloud_efficiency:40, 表示系統盤掛載40gb的高效雲盤。

資料盤配置格式: data:< cloud_efficiency|cloud_ssd>:<5-2000>:,舉例: data:cloud_ssd:50:/home/disk1, 表示掛載乙個50gb的ssd雲盤作為資料盤, windows下只能掛載到驅動,如掛載到e盤: data:cloud_ssd:50:e.

注意:對於bcs開頭的老專有例項,磁碟型別請使用ephemeral,資料盤大小的取值範圍限制為:[5-1024]gb)。

3. 檢視作業

Spark Yarn 提交作業

初學spark時,部署的是standalone模式 整合了ha 寫的測試程式一般建立上下文時如下 此處master設定為管理節點的集群位址 spark webui上顯示的位址 之後將測試 打包成jar包,上傳到伺服器,使用spark submit提交作業。提交命令 spark submit mast...

python分析作業提交情況

這次做乙個比較貼近我實際的東西 要求 將伺服器中交作業的學生 根據檔案的名字進行提取 和統計成績的 中的學生的資訊進行比對,輸出所有沒有交作業的同學的資訊 學號和姓名 並輸出所交的作業中命名格式有問題的檔名的資訊 如1627406012 e03.1 根據伺服器檔案可以拿到所有交了作業的同學的資訊。2...

Oozie提交作業總結

最常用的就是通過命令列方式提交,見yarn和hdfs的呼叫方式彙總中的 使用oozie提交yarn作業環節。使用rest的方式顯然更通用,當然原理與上述完全一致。首先在hdfs上建立相應工作空間目錄 user workspaces,放置oozie要用到的workflow.xml,並建立lib資料夾,...