2017-10-09 93 views
0

我有一個文件共享(你猜對了)很多文件。我想創建一個批處理作業,它將掛載這個文件共享和讀入每個文件並且並行處理每個文件(每個作爲批處理任務)。批處理任務是否可以讀取文件共享上的文件?

這是可能的與蟒蛇和蔚藍批次?展示如何做到這一點的任何教程都很棒。

+0

您可以澄清,如果您試圖安裝Azure文件共享和哪個操作系統/平臺? – fpark

+0

操作系統將是ubuntu,是的,由azure批量創建的VM /節點將需要安裝文件共享。 – pookie

+0

通過Azure文件共享我的意思是[Azure文件存儲](https://azure.microsoft.com/en-us/services/storage/files/)正確。你在裝這個嗎? – fpark

回答

0

您可以通過以下兩種方法之一來完成此操作。請注意,以下內容僅適用於Linux。 Windows用戶需要使用User Identities稍微不同的方法。

  1. 使用池的StartTask對象在計算節點級別掛載文件共享。請參閱Azure File documentation關於如何在Linux上爲您的發行版執行此操作。啓動任務可以是:
    • 直接掛載文件共享,即調用mount -t cifs ...。這將通過重新啓動工作,因爲StartTask每次重新啓動時都會重新運行。
    • 修改/etc/fstab以將條目添加到自動安裝。請注意,您必須使此操作具有冪等性,因爲StartTask每次重新啓動時都會重新運行。
  2. 使用作業的JobPreparationTask對象在作業級別掛載文件共享。您在此處指定的命令僅對該作業下的每個任務運行一次。您應該也可以指定作業的清理份額JobReleaseTaskunmount

確保,在任何你選擇的路徑,即適當擡高權限給該過程可以進行安裝或修改/etc/fstab任務(通常是超級用戶)等。

如果使用第一個選項,那麼掛載將始終可用於計算節點,無論是否需要它的作業都在該節點上運行。每種方法都有優點和缺點。您的要求,無論是合規還是技術(例如)都可以幫助您選擇。

+0

太棒了,那麼文件共享的安裝位置在哪裏?例如,如果我使用了linux命令並告訴它掛載到'/ home/mounts/data',那麼FS會被掛載到'data'中嗎? – pookie

+0

批處理計算節點不會更改/攔截裝入命令。它在系統上運行,就好像你在交互中一樣。只要目標目錄存在(如果不存在,在安裝之前需要首先執行'mkdir'),則安裝應該可以工作。您應該調查安裝到[已知的計算節點位置](https://docs.microsoft.com/zh-cn/azure/batch/batch-compute-node-environment-variables#command-line-expansion-of-environment - 變量)(例如'$ AZ_BATCH_NODE_SHARED_DIR/data'),這可能有助於您的任務而不是硬編碼位置。 – fpark

+0

謝謝,使用'$ AZ_BATCH_NODE_SHARED_DIR'是個好主意。我會嘗試一下。 – pookie

相關問題