关于临时文件
在我们查看代码时,我们发现 Kylin 在下列位置留下了大量垃圾文件:
- 客户端的本地文件系统
- HDFS
- hadoop 节点的本地文件系统。
开了一个单子来追踪这个 issue:
https://issues.apache.org/jira/browse/KYLIN-926
为了将来的开发,请:
- 每当您想在本地创建临时文件时,请选择
File.createTempFile 或使用文件夹:
BatchConstants.CFG_KYLIN_LOCAL_TEMP_DIR(/tmp/kylin),不要随意使用
/tmp 中的另一个文件夹,它会变得一团糟,看起来不专业。 - 每当您在本地创建临时文件时,请记得在使用之后删除它
使用它。最好使用 FileUtils.forceDelete,因为它也适用于
删除文件夹。如果 Kylin 异常退出,请尽量避免使用 deleteOnExit 方法。 - 每当您想要在 HDFS 中创建文件,请尝试在
kylin.hdfs.working.dir 或 BatchConstants.CFG_KYLIN_HDFS_TEMP_DIR 下创建文件,以及
记得在它不再有用之后删除它。尽量避免投掷
一切到 hdfs:///tmp 并将其留作垃圾。