我想通过以下方法检索在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
不返回任何内容吗?
答案 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=INFO
或log4j.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