try{ String fileName = "test"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://10.4.6.201:9000"); conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); System.out.println("ss"); boolean exists = fs.exists(new Path(fileName)); System.out.println(exists); if(exists){ System.out.println("文件存在"); }else{ System.out.println("文件不存在"); } }catch (Exception e){ System.out.println("111"); e.printStackTrace(); }为什么程序不结束
时间: 2024-02-12 16:02:23 浏览: 143
HDFS接口调用与编程代码示例
在你提供的代码中,程序没有结束可能有两种情况:
1. 代码中存在其他逻辑,导致程序没有结束。
在你提供的代码中,只有判断文件是否存在的逻辑,并没有其他代码,因此排除了这种情况。
2. Hadoop连接没有正确关闭,导致程序没有结束。
在你的代码中,你创建了一个`FileSystem`对象来连接Hadoop,但是没有显式地关闭这个连接。这样会导致连接资源没有正确释放,从而导致程序没有结束。你可以在代码最后添加`fs.close()`语句来关闭连接,例如:
```java
try {
String fileName = "test";
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://10.4.6.201:9000");
conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
FileSystem fs = FileSystem.get(conf);
System.out.println("ss");
boolean exists = fs.exists(new Path(fileName));
System.out.println(exists);
if (exists) {
System.out.println("文件存在");
} else {
System.out.println("文件不存在");
}
fs.close(); // 关闭连接
} catch (Exception e) {
System.out.println("111");
e.printStackTrace();
}
```
添加了`fs.close()`之后,程序应该就可以正常结束了。
阅读全文