在集群模式下使用 mesos 调度程序时,mesos 代理上的 Spark 执行程序失败

Spark executor failure on mesos agent while using mesos dispatcher in cluster mode

我按如下方式启动了调度程序,从日志中可以看出启动成功

./sbin/start-mesos-dispatcher.sh --master mesos://10.0.0.6:5050

Rest 服务器已在端口 7078 上激活

我将作业提交给调度员如下

./bin/spark-submit \
  --class com.ibm.cds.spark.samples.HelloSpark \
  --master mesos://10.0.0.6:7078 \
  --deploy-mode cluster \
  --verbose \
  https://github.com/../helloSpark.jar

在 spark slave 上,我在 mesos 代理沙箱 - stderr 中收到以下错误。

17/11/22 09:22:06 INFO RestSubmissionClient: Submitting a request to launch an application in mesos://10.0.0.6:5050.
Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestProtocolException: Malformed response received from server
    at org.apache.spark.deploy.rest.RestSubmissionClient.readResponse(RestSubmissionClient.scala:268)
    at org.apache.spark.deploy.rest.RestSubmissionClient.org$apache$spark$deploy$rest$RestSubmissionClient$$postJson(RestSubmissionClient.s

问题: 为什么执行者将应用程序的启动提交给 mesos-master?在spark-submit(上面)中,我清楚地给出了spark master地址(在端口7078)。为什么这个没有被采纳?

如何避免这个错误?

使用 mesos 版本 1.4.1

删除了 spark-defaults.conf 中的所有条目,但以下条目除外。 spark.eventLog.enabled 正确

现在工作正常,也就是说,我没有收到这个错误。

似乎是在 spark-defaults.conf 中调用 spark.master 导致了这个问题。