Apache Spark:什么时候触发清理磁盘缓存(persist()w / StorageLevel.useDisk == true)

时间:2019-01-24 08:40:46

标签: apache-spark

我试图找出在将某些数据持久保存到磁盘的应用程序之后何时清理Spark。 看代码,似乎ContextCleaner.keepCleaning()正在使用尽力而为的方法进行清理(最新一次调用SparkContext.stop()时)。

我不知道清理失败会发生什么情况,特别是是否有维护任务可以处理?

如果没有,建议采取什么方法来确保进行清理(我们可以创建一个恶魔,但是我们应该如何配置它,以便它可以找到正确的文件并且是必需的?)。

我们需要一种确定性机制,因为集群处理的数据可能包含PII,并且我们需要提供保证将其清除以保持合规性。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定您使用的是哪个Spark版本。正如您提到的,Spark有一个清洗线程,该线程用于通过弱引用队列自动删除未使用的(弱可达)对象。由于此线程设置为守护程序,并且不会在其中引发异常,因此我认为即使清理线程退出,主线程也将继续运行。

相关问题