Spark:如何在独立模式下设置特定于工作者的SPARK_HOME

时间:2014-06-24 21:16:26

标签: cluster-computing apache-spark

我正在建立一个[有点特别]的Spark工作人员集群:即我坐在附近的几台实验室机器。但是,当我尝试使用start-all.sh启动集群时,我遇到了一个问题:即,Spark安装在各种工作程序的不同目录中。但是主人使用$SPARK_HOME/sbin/start-all.sh定义在每个人上调用$SPARK_HOME,即使每个工作人员的路径不同。

假设我无法在每个工作人员的相同路径上安装Spark到主服务器,我怎样才能让主服务器识别不同的工作路径?

编辑#1 嗯,发现this thread in the Spark mailing list,强烈建议这是当前的实施 - 假设$SPARK_HOME对所有工作人员都相同。

2 个答案:

答案 0 :(得分:0)

我正在玩Windows上的Spark(我的笔记本电脑)并通过使用包含以下内容的脚本手动启动它们来运行两个工作节点

set SPARK_HOME=C:\dev\programs\spark-1.2.0-worker1
set SPARK_MASTER_IP=master.brad.com 
spark-class org.apache.spark.deploy.worker.Worker spark://master.brad.com:7077 

然后我创建了一个此脚本的副本,其中定义了一个不同的SPARK_HOME来运行我的第二个worker。当我开始提交火花时,我会在Worker_1

上看到这一点
15/02/13 16:42:10 INFO ExecutorRunner: Launch command: ...C:\dev\programs\spark-1.2.0-worker1\bin...

并在Worker_2

15/02/13 16:42:10 INFO ExecutorRunner: Launch command: ...C:\dev\programs\spark-1.2.0-worker2\bin...

所以它有效,在我的情况下,我复制了spark安装目录,但你可以绕过这个

答案 1 :(得分:0)

您可能需要考虑通过更改SPARK_WORKER_DIR文件中的spark-env.sh行来指定名称。