使用Spark on EC2在集群创建时分发文件

时间:2014-08-30 12:49:20

标签: amazon-ec2 amazon apache-spark

我正在亚马逊 EC2 基础架构上使用 Spark 。在执行 Spark 应用程序之前,我需要在所有工作节点上分发和发送自定义文件(本机库中的本机库)。我正在寻找类似于 Amazon Elastic MapReduce(EMR)提供的引导功能,开发人员可以在每个节点上运行自定义脚本在启动阶段。

到目前为止,我已经使用了 Spark (位于copy-dir文件夹中)提供的spark-ec2脚本,该脚本将确定的文件复制到群集中可用的所有节点中,其工作原理如下:

想象一下需要存在于所有节点中的本机库(myLib.so)。第一步是将文件放在我们想要通过集群传播的确切目录中。之后,我们可以运行copy-dir脚本,如下所示:

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

但是,这种方法只能在创建集群后使用,我想知道是否存在任何引导可能性。

2 个答案:

答案 0 :(得分:1)

查看sc.addFile()。这可用于将文件分发到所有工作节点

答案 1 :(得分:0)

为了将代码从主节点分配给工作节点/从节点 使用copy-dir脚本并提及要分发的文件/目录的路径。 示例 - 如果我在/ root /目录中有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