我正在建立一个[有点特别]的Spark工作人员集群:即我坐在附近的几台实验室机器。但是,当我尝试使用start-all.sh
启动集群时,我遇到了一个问题:即,Spark安装在各种工作程序的不同目录中。但是主人使用$SPARK_HOME/sbin/start-all.sh
的主定义在每个人上调用$SPARK_HOME
,即使每个工作人员的路径不同。
假设我无法在每个工作人员的相同路径上安装Spark到主服务器,我怎样才能让主服务器识别不同的工作路径?
编辑#1 嗯,发现this thread in the Spark mailing list,强烈建议这是当前的实施 - 假设$SPARK_HOME
对所有工作人员都相同。
答案 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
行来指定名称。