2014-08-30 83 views
4

我與星火亞馬遜EC2基礎設施工作分發文件的羣集創建星火。在執行我的Spark應用程序之前,我需要分發併發送一個自定義文件(本機庫,在我的情況下)到所有工作節點上。我正在尋找類似提供的引導功能的東西AmazonElastic MapReduce(EMR),開發人員可以在引導階段在每個節點上運行自定義腳本。在EC2上

到目前爲止,我已經使用星火(位於spark-ec2文件夾)提供的copy-dir腳本複製一個確定的文件到集羣中所有的節點,它的工作如下:

想象一下,一個本地庫(myLib.so)需要在所有節點中存在。第一步是將文件定位到我們想要通過羣集傳播的確切目錄中。在此之後,如下所示,我們可以運行copy-dir腳本:

spark-ec2/ > sh copy-dir my/file/location/myLib.so 

但是,這種方法只能用一次集羣已創建使用,我想知道是否有引導可能性是存在的。

+0

在'火花ec2'的'--user-data'選擇可能是你在找什麼。 – 2015-01-11 21:20:58

回答

1

調查sc.addFile()。這可用於將文件分發到所有工作節點

+0

感謝您的回答,但我不在尋找您提到的內容。相反,我需要在Spark執行之前(在集羣創建時)分發文件,用於其他不包含Spark應用程序的目的。 – 2014-09-26 06:47:20

0

爲了將代碼從主節點分發到工作節點/從節點 使用copy-dir腳本並提及要分發的文件/目錄的路徑。 例子 - 如果我有/根wordcount.py文件/目錄 - 下面的代碼分發文件,工作節點/奴隸

sudo /root/spark-ec2/copy-dir /root/wordcount.py 
RSYNC'ing /root/wordcount.py to slaves... 
ec2-54-175-163-32.compute-1.amazonaws.com 
+0

謝謝你的答案@Chaitanya,但你提到的解決方案已經包含在問題中。 – 2016-07-13 10:16:54

+0

啊是的 - 執行相同的腳本的另一種方式。對 – 2016-07-13 10:27:50