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

时间:2017-11-22 10:02:13

标签: apache-spark mesos

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

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

在端口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(上图)中,我清楚地给出了火花主地址(在端口7078)。为什么不采取这种做法?

如何避免此错误?

使用mesos版本1.4.1

1 个答案:

答案 0 :(得分:0)

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

现在工作正常,这意味着,我没有收到此错误。

看起来好像在spark-defaults.conf中调用了spark.master导致了这个问题。