Apache spark 清理火花历史记录日志
我们有长期运行的EMR集群,在那里我们提交Spark作业。我看到,随着时间的推移,HDFS会被Spark应用程序日志填满,这有时会使主机在EMR/Thread(?)看来不健康 运行hadoop fs-R-h/会显示[1],这清楚地表明没有删除任何应用程序日志 我们已经将Apache spark 清理火花历史记录日志,apache-spark,Apache Spark,我们有长期运行的EMR集群,在那里我们提交Spark作业。我看到,随着时间的推移,HDFS会被Spark应用程序日志填满,这有时会使主机在EMR/Thread(?)看来不健康 运行hadoop fs-R-h/会显示[1],这清楚地表明没有删除任何应用程序日志 我们已经将spark.history.fs.cleaner.enabled设置为true(在spark UI中验证了这一点),并希望其他默认值,如:中提到的cleaner interval(1天)和cleaner max age(7d),能
spark.history.fs.cleaner.enabled
设置为true
(在spark UI中验证了这一点),并希望其他默认值,如:中提到的cleaner interval(1天)和cleaner max age(7d),能够清理这些日志。 但事实并非如此
有什么想法吗
[1]
我在
emr-5.4.0
上遇到了这个问题,并将spark.history.fs.cleaner.interval
设置为1h
,并且能够让清洁器运行
以下是我的spark defaults.conf
文件的结尾,以供参考:
spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.maxAge 12h
spark.history.fs.cleaner.interval 1h
进行更改后,重新启动spark历史记录服务器
另一个澄清:在应用程序运行期间设置这些值,即通过
--conf
设置spark submit
,没有任何效果。在群集创建时通过EMR配置API进行设置,或者手动编辑spark-defaults.conf,设置这些值并重新启动spark history server。还请注意,下次Spark应用程序重新启动时,日志将被清除。例如,如果您有一个长时间运行的Spark streaming作业,它将不会删除该应用程序运行的任何日志,并将继续累积日志。下次作业重新启动时(可能是由于部署),它将清理旧日志。您使用的是哪个EMR AMI版本?这些是容器/执行器日志吗?你在使用纱线模式吗?@swaranga sarma你能解决这个问题吗?我们遇到了类似的情况,我们的1长时间运行的应用程序从未清理过日志。@Interfector我认为ferris tseng是正确的。我要试试看。相似的issues@GauravShah我们已经尝试过这个解决方案,但似乎没有奏效。原因是我们的应用程序运行时间很长。要进行清理,应用程序需要完成,它不会为运行的应用程序旋转日志。我们必须完全禁用Spark History Server。@我想我们会遇到同样的问题。我会看看是否能找到其他东西来证实这是有效的。有两种方法可以做到这一点:1。在集群创建期间添加此选项。2.编辑spark-defaults.conf并重新启动历史记录服务器。添加此选项是否也会清除不在最大年龄范围内的以前的日志?@SwarangaSarma您的意思是只有在应用程序重新启动时才会进行清理?在这种情况下,我如何处理需要连续运行的流媒体作业?@SaisumanthGopisetty在我们的情况下,我们相当频繁地进行部署(一周一次),这就足够进行清理了。谢谢@SwarangaSarma。你知道如何处理流媒体应用程序中庞大的进程日志吗?
spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.maxAge 12h
spark.history.fs.cleaner.interval 1h