この記事では、さまざまな種類のジョブを送信するために使用されるコマンドについて説明します。
1. 最も単純なジョブを送信する
準備に従ってデフォルトのイメージ、インスタンスタイプ、およびネットワークタイプを構成している場合は、次の簡単なコマンドを使用してジョブを送信します。
bcs sub "echo 123" # 単一タスクジョブ「echo 123」を送信して実行します。
BatchCompute-cli ツールでデフォルト設定が使用できない場合は、ジョブを送信するときにさらにパラメーターを指定する必要があります。
bcs sub "echo 123" -t ecs.sn1ne.large -i img-ubuntu-vpc --vpc_cidr_block 192.168.0.0/16
この記事の残りの例では、デフォルト設定を構成済みであると想定しています。
2. Python スクリプトジョブを送信する
bcs sub "python test.py" -p ./test.py # "-p" は、test.py が worker.tar.gz にパックされ、ジョブが送信される前に OSS にアップロードされることを示します。
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 ディレクトリに切り替えない場合は、次のようにジョブを送信します。
bcs sub "python test.py" -p src/test.py,src/dep.py # 2 つのファイルを worker.tar.gz にパックします。
次に、次のコマンドを使用して worker.tar.gz の内容を表示します。
tar -tvf worker.tar.gz
worker.tar.gz の内容は次のとおりです。
test.py
dep.py
4. タスクプログラムをマウントしてジョブを送信する
test.py を oss://mybucket/test/test.py にアップロード済みであるとします。OSS ディレクトリ「oss://mybucket/test/」を VM ローカルディレクトリ(例:「/home/admin/test/」)にマウントできます。次に、「python /home/admin/test/test.py」コマンドを使用してプログラムを実行します。
次のようにジョブを送信します。
bcs sub "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/」にマウントされます。
このように、test.py と dep.py を worker.tar.gz にパックする必要はありません。
ジョブの送信方法の詳細については、「bcs sub -h」を実行してヘルプ情報を表示してください。
その他のタスク
1. 入力データをマウントする
データがディレクトリ「oss://my-bucket/inputs/」にアップロードされているとします。
bcs sub "python test.py" -p ./src/ -r oss://my-bucket/inputs/:/home/admin/inputs/
「-r」は読み取り専用マウントを示し、「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. マウント方法を使用してプログラムの実行結果を自動的にアップロードする
プログラムは実行結果をディレクトリ「/home/admin/outputs/」に書き込みます。このディレクトリの下のすべてのデータを OSS にアップロードするには、次のコマンドを実行します。
bcs sub "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/
です。
3. カスタムイメージとインスタンスタイプを使用する
bcs sub "python test.py" -p ./src/ -c img=img-ubuntu-vpc:type=ecs.sn1ne.large
「-c」はクラスターが使用されていることを示します。「-c」の隣に、クラスター ID または AutoCluster 構成を指定できます。AutoCluster 構成の形式は次のとおりです:
img=${ImageId}:type=${InstanceType}
。「img=img-ubuntu-vpc」はイメージが使用されていることを示します。カスタムイメージを指定できます。
「type=ecs.sn1ne.large」はインスタンスタイプが使用されていることを示します。
bcs it
を実行して、サポートされているインスタンスタイプのリストを表示できます。-c img=${ImageId}
のみ、または-c type=${InstanceType}
のみ指定します。どちらも指定されていない場合は、デフォルトイメージとデフォルトインスタンスタイプが使用されます。
4. クラスターを使用する
bcs sub "python test.py" -p ./src/ -c cls-xxxxxxx
「-c cls-xxxxxxx」は、ID が cls-xxxxxxx に設定されているクラスターが使用されていることを示します。
クラスターの詳細については、クラスターの使用を参照してください。
5. Docker を使用する
bcs sub "python test.py" -p ./src/ --docker myubuntu@oss://my-bucket/dockers/
「myubuntu」は「localhost:5000/myubuntu」の省略形です。「oss://my-bucket/dockers/」は OSS Docker レジストリのパスを示します。
詳細については、Docker の使用を参照してください。
6. カスタムディスク
bcs sub "python test.py" --disk system:cloud_efficiency:50,data:cloud_efficiency:200
このコマンドは、AutoCluster が使用されている場合にのみ有効です。システムディスクと 1 つのデータディスク(オプション)を構成できます。形式は
-disk system:cloud_efficiency:40,data:cloud_efficiency:50:/home/disk1
に似ています。システムディスクの構成は、データディスクの構成とコンマ(,)で区切られます。システムディスクのみ、またはデータディスクのみを指定できます。例:-disk system:cloud_efficiency:40
。デフォルトでは、1 つのシステムディスクのみがマウントされ、サイズは 40 GB です。
システムディスクの構成の形式は次のとおりです。system:< cloud_efficiency|cloud_ssd>:<40-500>。たとえば、「system:cloud_efficiency:40」は、システムディスクが 40 GB のウルトラクラウドディスクにマウントされていることを示します。
データディスクの構成の形式は次のとおりです。data:< cloud_efficiency|cloud_ssd>:<5-2000>:たとえば、「data:cloud_ssd:50:/home/disk1」は、50 GB の SSD クラウドディスクがデータディスクとしてマウントされていることを示します。Windows オペレーティングシステムでは、データディスクはドライブにのみマウントできます。たとえば、「data:cloud_ssd:50:E」は、データディスクが E ドライブにマウントされていることを示します。
注:「bcs」で始まる古い専用インスタンスの場合は、ディスクタイプを ephemeral に設定し、データディスクのサイズを 5 GB から 1024 GB の範囲の値に設定します。
ジョブ情報の表示
詳細については、ジョブ情報の表示方法を参照してください。