【发布时间】:2015-07-17 14:09:15
【问题描述】:
spark程序完成后,temp目录中还剩下3个临时目录。 目录名是这样的:spark-2e389487-40cc-4a82-a5c7-353c0feefbb7
目录为空。
当 Spark 程序在 Windows 上运行时,一个快速的 DLL 文件也保留在 temp 目录中。 文件名是这样的:snappy-1.0.4.1-6e117df4-97b6-4d69-bf9d-71c4a627940c-snappyjava
它们是在 Spark 程序每次运行时创建的。所以文件和目录的数量不断增长。
如何让他们被删除?
Spark 版本是 1.3.1 和 Hadoop 2.6。
更新
我已经追踪了 spark 源代码。
创建 3 个 'temp' 目录的模块方法如下:
- DiskBlockManager.createLocalDirs
- HttpFileServer.initialize
- SparkEnv.sparkFilesDir
他们(最终)调用 Utils.getOrCreateLocalRootDirs,然后调用 Utils.createDirectory,它故意不将目录标记为自动删除。
createDirectory 方法的注释说:“目录保证是 新创建的,并且没有标记为自动删除。”
我不知道为什么它们没有被标记。这真的是故意的吗?
【问题讨论】:
标签: apache-spark