pyspark 即使已完成,在Spark历史的不完整部分中应用Spark

xoefb8l8  于 2022-11-01  发布在  Spark
关注(0)|答案(1)|浏览(289)

在我的Spark历史记录中,一些应用程序已经“不完整”一周了。我试过杀死它们,关闭sparkContext(),杀死main.py进程,但是没有任何帮助。
例如,

yarn application -status <id>

显示:

...
State: FINISHED
Final-State: SUCCEDED
...
Log Aggregation Status: TIME_OUT
...

但是在Spark-History中,我仍然在我的应用程序的不完整部分看到它。如果我在那里打开这个应用程序,我可以看到1个活动作业和1个活动执行器,但是他们整个星期都没有做任何事情。这似乎是一个日志错误,但是我知道这个问题只存在于我,其他同事没有这个问题。
这个thread对我没有帮助,因为我没有访问start-history-server.sh的权限。
我想这个问题是因为

Log Aggregation Status: TIME_OUT

因为我的“已完成”申请

Log Aggregation Status: SUCCEDED

我能做些什么来解决这个问题?现在我有90多个不完整的申请。
我已经找到了清晰描述我的问题与相同情况(Yarn、Spark等),但没有解决方案:What is 'Active Jobs' in Spark History Server Spark UI Jobs section

k5ifujac

k5ifujac1#

来自Spark监测和 Jmeter :
...
3.退出时没有注册为已完成的应用程序将被列为未完成--即使它们不再运行。如果应用程序崩溃,则可能发生这种情况。
...
含义:
历史服务器的用户界面只显示那些Spark应用的事件日志,它可以在它的spark.eventLog.dir目录中找到这些应用的事件日志(在Hadoop中,配置通常被设置为/user/spark/applicationHistory)。

:
{"Event":"SparkListenerApplicationEnd","Timestamp":1667223930402}

...该应用程序被视为未完成(即使它已不再运行),并将显示在“未完成的应用程序”页面上。
对于您的问题,这意味着将应用程序“移动”到Completed Apps页面并非易事,需要手动编辑事件日志并将其重新上传到Hadoop中的SHS目录。此外,这不会解决任何问题,因为最有可能的是,您的应用程序在写入最终消息之前一直崩溃,并且其下次运行将再次在同一个Incomplete页面上结束。
要诊断失败的原因,您可以查看应用程序驱动程序日志,寻找任何线索--错误或异常消息。正常关闭看起来会因资源管理器类型和应用程序使用的部署模式而异。对于deploy-mode=cluster和YARN RM,它看起来如下所示:

:
22/10/31 11:11:11 INFO spark.SparkContext: Successfully stopped SparkContext
22/10/31 11:11:11 INFO yarn.ApplicationMaster: Final app status: SUCCEEDED, exitCode: 0
22/10/31 11:11:11 INFO yarn.ApplicationMaster: Unregistering ApplicationMaster with SUCCEEDED
22/10/31 11:11:11 INFO impl.AMRMClientImpl: Waiting for application to be successfully unregistered.
22/10/31 11:11:11 INFO yarn.ApplicationMaster: Deleting staging directory hdfs://.../.../.sparkStaging/application_<appId>
22/10/31 11:11:11 INFO util.ShutdownHookManager: Shutdown hook called
22/10/31 11:11:11 INFO util.ShutdownHookManager: Deleting directory /.../.../appcache/application_<appId>/spark-<guid>

相关问题