Spark Job Server是否必须与Spark Master部署在同一台主机上?

我想在不同的主机上将Spark Job Server (在Docker容器中)部署到Spark Master。 但是, server_start.sh脚本似乎假设它正在与Spark Master在同一台机器上运行。 例如:

if [ -z "$SPARK_CONF_DIR" ]; then SPARK_CONF_DIR=$SPARK_HOME/conf fi # Pull in other env vars in spark config, such as MESOS_NATIVE_LIBRARY . $SPARK_CONF_DIR/spark-env.sh 

根据架构部分,它说:

作业服务器旨在作为一个或多个独立的进程运行,与Spark集群分离(虽然很可能与主节点同步)。

有谁知道如何使server_start.sh脚本能够在Spark Job Server上另一台机器上托pipe的Spark Master那样工作?

你可以在你的local.conf中设置主URL。 看到这里的示例https://github.com/spark-jobserver/spark-jobserver/blob/master/job-server/config/local.conf.template#L7

你需要用“spark:// master-node:7077”replace“local [4]”

除了noorul的回答,我想补充一点,你也可以使用“yarn-client”,或者任何你想要的。 在这种情况下,考虑到你需要设置HADOOP_CONF_DIR或者YARN_CONF_DIR。 你可以在这里find更多的信息。 然后,您还必须照顾执行作业服务器的用户,以便她能够写入HDFS,例如使用Yarn。