spark-submit-与mesos master的状态不返回任何内容

时间:2018-10-03 01:47:56

标签: apache-spark mesos

我想通过以下方法检索在mesos主服务器上以集群模式运行的spark作业的状态:

spark-submit --master mesos://<ip>:7077 --status "driver-...-..."

无论驱动程序的状态如何,它都不会记录而退出0

我知道它在做正确的事情,因为如果我使用无效的mesos IP /端口运行命令,我会得到

Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestConnectionException: Unable to connect to server
at org.apache.spark.deploy.rest.RestSubmissionClient$$anonfun$requestSubmissionStatus$3.apply(RestSubmissionClient.scala:165)

如果我使用无效的提交ID运行,我会得到

2018-10-02 18:47:01 ERROR RestSubmissionClient:70 - Error: Server responded with message of unexpected type SubmissionStatusResponse.

知道为什么spark-submit --status不返回任何内容吗?

3 个答案:

答案 0 :(得分:0)

我通过直接访问调度程序的api找到了一种解决方法:

curl -s "http://$DISPATCHER/v1/submissions/status/$SUBMISSION_ID"

仍然没有明确的答案,为什么spark-submit --status的行为不如所记载的那样。

答案 1 :(得分:0)

不确定所使用的Spark版本。我的调查基于spark-2.4.0。所描述的行为对 spark独立 mesos 部署目标均有效。

org.apache.spark.deploy.rest.RestSubmissionClient用作其余提交请求的处理程序,并以编程方式使用 INFO 级别记录响应。

org.apache.spark.deploy.SparkSubmit用作调用 spark-submit 的主要类,其记录器是所有其他记录器的顶级根记录器。

以编程方式,如果未在 conf / log4j.properties中设置 SparkSubmit 的特定记录器(缺少该文件时,则保持不变),默认级别设置为< strong> WARN 。

更进一步,在没有 RestSubmissionClient 的特定记录器的情况下,它将获得其根记录器的级别,即 SparkSubmit 的记录器。

您会看到错误,因为WARN再次是默认设置。

要查看其余提交的日志,您可能需要使用以下任一方法来调整$ {SPARK_HOME} /conf/log4j.properties log4j.logger.org.apache.spark.deploy.rest.RestSubmissionClient=INFOlog4j.logger.org.apache.spark.deploy.rest=INFO用于该软件包中的其他类。

答案 2 :(得分:0)

添加以下内容 log4j.logger.org.apache.spark.deploy.rest.RestSubmissionClient=INFO 和 log4j.logger.org.apache.spark.deploy.rest=INFO

到 log4j.properties 出现在 /etc/spark/conf 位置并再次查找状态

spark-submit --master spark://:6066 --status driver-20210516043704-0012