2014-08-30 31 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