2017-10-09 3 views
0

私は(あなたが推測した)ファイル共有をたくさん持っています。私は、このファイル共有をマウントするバッチジョブを作成し、それぞれのファイルを読み込み、それぞれを並列処理します(それぞれバッチタスクとして)。バッチタスクはファイル共有上のファイルを読み取ることができますか?

これはpythonと紺碧のバッチで可能ですか?これを行う方法を示すチュートリアルはすばらしいでしょう。

+0

Azureファイル共有とどのオペレーティングシステム/プラットフォームをマウントしようとしているかを明確にすることはできますか? – fpark

+0

OSはubuntuになります。azureバッチで作成されたVM /ノードはファイル共有をマウントする必要があります。 – pookie

+0

Azureによるファイル共有とは、[Azure File Storage](https://azure.microsoft.com/en-us/services/storage/files/)という意味です。これをマウントしていますか? – fpark

答えて

0

これは2つの方法のいずれかで実行できます。以下はLinuxにのみ適用されます。 WindowsユーザーはUser Identitiesを使用してわずかに異なる方法に従う必要があります。

  1. プールのStartTaskオブジェクトを使用して、計算ノードレベルにファイル共有をマウントします。 Linuxのディストリビューションでこれを行う方法については、Azure File documentationを参照してください。開始タスクは次のいずれかです。
    • ファイル共有を直接マウントします。つまり、mount -t cifs ...を呼び出します。これは、再起動時に毎回StartTaskが再実行されるため、再起動しても動作します。
    • /etc/fstabを変更して、automountにエントリを追加します。再起動時に毎回StartTaskが再実行されるため、この操作は偶発的にする必要があります。
  2. ジョブのレベルでジョブのJobPreparationTaskオブジェクトを使用してファイル共有をマウントします。ここで指定するコマンドは、そのジョブのすべてのタスクに対して1回だけ実行されます。おそらく、ジョブのクリーンアップのために、JobReleaseTaskunmountの共有を指定する必要があります。

任意のパスを選択して、プロセスがマウントまたは変更を実行できるようにタスク(通常はスーパーユーザー)に適切な昇格特権が与えられていることを確認してください。/etc/fstab

最初のオプションを使用すると、必要なジョブがそのノードで実行されているかどうかにかかわらず、計算ノードに計算ノードが常に使用可能になります。それぞれのアプローチには長所と短所があります。あなたの要件は、それがコンプライアンスであるか、技術的なもの(たとえば)があなたの選択に役立つはずです。

+0

偉大なので、ファイル共有はどこにマウントされますか?たとえば、linuxコマンドを使用して '/ home/mounts/data'にマウントするように指示した場合、FSは' data'にマウントされますか? – pookie

+0

バッチ計算ノードは、マウントコマンドを変更/インターセプトしません。あたかもインタラクティブにそれを与えていたかのように、システム上で実行されます。宛先ディレクトリが存在する限り(マウントされていなければ、マウントする前に最初に 'mkdir 'する必要があります)、マウントが機能するはずです。 [既知の計算ノードの場所](https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables#command-line-expansion-of-environment)へのマウントを調べる必要があります。 -variables)(例: '$ AZ_BATCH_NODE_SHARED_DIR/data')は、ハードコーディングの場所の代わりにあなたの仕事に役立ちます。 – fpark

+0

ありがとう、 '$ AZ_BATCH_NODE_SHARED_DIR'を使っていただきありがとうございます。私はそれを試してみましょう。 – pookie

関連する問題