【问题标题】:Does Spark Job Server have to be deployed on the same host as Spark Master?Spark Job Server 是否必须与 Spark Master 部署在同一主机上?
【发布时间】:2015-08-09 08:19:24
【问题描述】:

我想在与 Spark Master 不同的主机上部署 Spark Job Server(在 Docker 容器中)。但是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

Architecture 部分下显示:

作业服务器旨在作为一个或多个独立运行 进程,独立于 Spark 集群(尽管它很可能是 与Master同处一地)。

有谁知道如何使server_start.sh 脚本按原样与托管在与 Spark Job Server 不同的机器上的 Spark Master 一起工作?

【问题讨论】:

  • 感谢@Alister Lee。这强化了 Spark Job Server理论上可以在 Spark Master 节点之外运行的想法,但它并没有告诉我 Job Server 的 server_start.sh 脚​​本是否可以在这种情况下工作。目前看来我必须在与 Spark Job Server 相同的机器上安装 Spark,前提是后者可以在其类路径中包含 Spark 的 jar。
  • 这些启动脚本旨在启动应担任这些角色的硬件节点上的主应用程序和工作程序应用程序。作业服务器运行 spark-submit 并获取(正在运行的)主服务器的 URL。启动 master 和提交作业是解耦的。
  • 抱歉,我想我们说的是跨目的。我假设 Spark Cluster 已经启动,我根本不想碰它。我所指的 server_start.sh 脚本是针对 Spark Job Server 的,而不是针对 Spark 本身的。只是 server_start.sh 脚本似乎要求将 Spark 安装在与 Job Server 相同的机器上,即使这与您最终希望通过 Job Server 的 REST API 提交作业的 Spark 实例不同。
  • 您链接到它,但我没有阅读它.. 抱歉不了解 Job Server。道歉!

标签: apache-spark docker spark-jobserver


【解决方案1】:

您可以在 local.conf 中设置主 URL。请参阅此处获取示例https://github.com/spark-jobserver/spark-jobserver/blob/master/job-server/config/local.conf.template#L7

您需要将“local[4]”替换为“spark://master-node:7077”

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 2016-01-18
      • 1970-01-01
      相关资源
      最近更新 更多