package com.hadoop.hdfs;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class ListHdfsFiles {
public static Configuration conf = new Configuration();
public static String uri = "hdfs://hadoop01:9000/";
public static Path path = new Path("hdfs://hadoop01:9000/");
public static FileSystem fs = null;
public static void main(String[] args) throws IOException, URISyntaxException {
fs = FileSystem.get(new URI(uri),conf);
//从hdfs根路径开始
FileStatus[] files = fs.listStatus(path);
//开始调用打印函数
for(FileStatus file : files){
printHdfs(file,fs);
}
}
public static void printHdfs(FileStatus file,FileSystem fs) throws FileNotFoundException, IOException{
//如果为文件夹,则打印其hdfs路径
if(file.isDirectory()){
if(!file.isFile()){
System.out.println(file.getPath());
}
//得到该路径下的文件
FileStatus[] files = fs.listStatus(file.getPath());
//如果该路径下仍然有文件,则递归调用打印函数
if(files.length>0){
for(FileStatus f : files)
printHdfs(f,fs);
}
}
}
}
递归打印出HDFS上的所有文件夹
最新推荐文章于 2023-09-13 15:23:22 发布