我正在亚马逊的EC2基础设施上与斯派克合作。在执行我的Spark应用程序之前,我需要将一个自定义文件(在我的例子中是一个本机库)分发并发送到所有的工作节点上。我正在寻找类似于亚马逊的弹性MapReduce (EMR)提供的引导功能,开发人员可以在启动阶段在每个节点上运行自定义脚本。
到目前为止,我已经使用了copy-dir脚本(位于spark-ec2文件夹上),该脚本将确定的文件复制到集群中的所有可用节点中,这些节点的工作方式如下:
假设需要在所有节点中存在一个本机库(myLib.so)。第一步是将文件定位到我们希望在集群中传播的确切目录中。之后,我们可以按如下方式运行copy-dir脚本:
spark-ec2/ > sh copy-dir my/file/location/myLib.so但是,这种方法只能在集群创建之后才能使用,我想知道是否存在引导的可能性。
发布于 2014-09-26 00:21:52
查看sc.addFile()。这可用于将文件分发给所有工作节点。
发布于 2016-07-13 10:02:13
为了将代码从主节点分发到工作节点/奴隶,使用copy脚本,并提到要分发的文件/目录的路径。示例--如果我在/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.comhttps://stackoverflow.com/questions/25582545
复制相似问题