0
我剛開始使用Fabric,看起來像一個非常有用的工具。我可以寫一個小劇本在我的亞馬遜EC2主機並行運行一些命令,像這樣:如何使用Fabric從多個節點同時複製?
@parallel
def runs_in_parallel():
sudo("sudo rm -rf /usr/lib/jvm/j2sdk1.6-oracle")
另外,我還編寫了另一個腳本,所有Hadoop的日誌從所有EC2節點複製到我的本地機器。此腳本創建一個文件夾,其中包含每個節點的1個文件夾作爲其IP地址,並將該節點的日誌複製到名爲folder的IP地址中。例如: -
2014-04-22-15-52-55
50.17.94.170
hadoop-logs
54.204.157.86
hadoop-logs
54.205.86.22
hadoop-logs
現在我想用面料,這樣我可以在平行復制日誌,以節省時間做這個副本任務。我認爲我可以像我在第一個代碼片段中那樣輕鬆地完成它,但這不會起作用,因爲它運行的命令爲遠程服務器。到目前爲止,我還不知道如何做到這一點。任何幫助深表感謝。
感謝您的回覆摩根。但是我不認爲get()並行執行,或者它不執行? – Bhushan
並行運行命令/任務。如果它正在執行get(),它也會並行執行。你可以在100個主機上並行執行一個任務,但任務是執行「local(」ping google.com「)'。或者我誤解了你想要完成的任務? – Morgan
我試圖在同一臺機器上同時運行多個命令,從一臺機器向多臺機器打開多個rsynch通道並從它們下載內容。 – Bhushan