我运行一个 spark 应用程序,它使用 StorageLevel.OFF_HEAP 来持久化一个 rdd(我的 tachyon 和 spark 都处于本地模式)。
像这样:
val lines = sc.textFile("FILE_PATH/test-lines-1")
val words = lines.flatMap(_.split(" ")).map(word => (word, 1)).persist(StorageLevel.OFF_HEAP)
val counts = words.reduceByKey(_ + _)
counts.collect.foreach(println)
...
sc.stop
坚持完成后,我可以从 localhost:19999(tachyon 的 Web UI)看到我的 OFF_HEAP 文件,这是我的例外。
但是,在 spark 应用程序结束后(sc.stop,但 tachyon 正在工作),我的块(OFF_HEAP rdd)被删除了。而且我无法从 localhost:19999 找到我的文件。这不是我想要的。我认为这些文件在 persist() 方法之后属于 Tachyon(不是 spark),它们不应该被删除。
那么,谁删除了我的文件,何时删除?这是正常的方式吗?