在使用Java API处理HDFS时,我们是否需要显式调用fs.close()?

MaS*_*SEL 6 java hadoop scala hdfs

使用org.apache.hadoop.fsscala上的类使用HDFS的典型开始是

val conf = new Configuration()
fs = FileSystem.get(conf)
Run Code Online (Sandbox Code Playgroud)

我们需要调用类似 IOUtils.closeStream(fs)fs.close()最终的内容吗?

我找到了与此主题相关的单一答案 https://groups.google.com/forum/#!topic/nosql-databases/Mn9KLbtmh7M

根据我的经验,您可以让FileSystem实例自行关闭.

我不确定我能依靠它.

小智 0

您始终可以对资源使用 try :

try (fs = FileSystem.get(conf)) {
  < your code>
}
    
Run Code Online (Sandbox Code Playgroud)

由于文件系统是可关闭的,它将在“尝试”范围结束时关闭