在集群模式下使用 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 导致了这个问题。
我按如下方式启动了调度程序,从日志中可以看出启动成功
./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 导致了这个问题。