使用历史服务器条目的最佳方法是什么?我的集群有很多执行,它们显示为应用程序Ids。我知道它们占用了HDFS文件系统中大量的硬盘空间(我假设是这样的)。
实际上,随着越来越多的执行发生在集群中,History服务器的堆内存使用量随着时间的推移而不断增加。
我在Spark配置中更改了两件事: 1)保留应用程序计数(Spark conf) spark.history.retainedApplications (从50到5)
2) Yarn Conf - JobHistory服务器的Java堆大小(以字节为单位)-之前是128MB,我增加到256,然后增加到920。历史服务器没有启动,因为堆内存问题,直到我把920。
我可以做更多的清理工作,这样Spark历史服务器就不会占用太多内存了吗?在这个阶段,我对历史不感兴趣。
发布于 2018-07-30 20:41:37
我能想到的一种方法是编写另一个自定义作业,它可以提取spark历史并将其存储在云/任何外部存储(例如: s3)中。您可以将此作业作为依赖作业添加到应用程序中,以便每当应用程序执行时,清理作业也会作为最后一步运行。例如,如果您通过电子病历执行作业,则可以将该作业添加为相关步骤,以便每当作业完成时,清理作业都会触发,并且您的应用程序历史记录可以存储在S3中
https://stackoverflow.com/questions/51593568
复制相似问题