使用Java API 打印 hdfs集群下一目录中的文件信息
时间: 2024-02-23 22:01:43 浏览: 88
好的,您可以使用Hadoop的Java API来实现这个功能。具体实现步骤如下:
1. 首先,需要引入hadoop-client依赖,可以在pom.xml文件中添加以下代码:
```xml
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.1</version>
</dependency>
```
2. 接着,可以使用以下代码来实现打印hdfs集群下一目录中的文件信息:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileStatus;
import java.io.IOException;
public class HdfsFileList {
public static void main(String[] args) throws IOException {
// 创建Configuration对象
Configuration conf = new Configuration();
// 设置HDFS文件系统的URI
conf.set("fs.defaultFS", "hdfs://<hdfs_host>:<hdfs_port>");
// 创建FileSystem对象
FileSystem fs = FileSystem.get(conf);
// 设置要遍历的目录
Path path = new Path("/path/to/dir");
// 判断目录是否存在
if (fs.exists(path)) {
// 获取目录下的所有文件信息
FileStatus[] fileStatusArray = fs.listStatus(path);
// 遍历文件信息并打印
for (FileStatus fileStatus : fileStatusArray) {
String filePath = fileStatus.getPath().toString();
System.out.println(filePath);
}
} else {
System.out.println("目录不存在!");
}
// 关闭FileSystem对象
fs.close();
}
}
```
其中,`<hdfs_host>`和`<hdfs_port>`需要替换为实际的HDFS集群的IP地址和端口号,`/path/to/dir`需要替换为实际的要遍历的目录路径。代码中,使用`FileSystem.listStatus()`方法获取目录下的所有文件信息,然后遍历文件信息并打印出来。
希望这个代码可以帮助到您!
阅读全文