// cc ListStatus Shows the file statuses for a collection of paths in a Hadoop filesystem
/*
* 一个路径下会产生一个到多个的FileStatus,每个文件和每个目录都会产生一个
*/
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
// vv ListStatus
public class ListStatus {
public static void main(String[] args) throws Exception {
String uri = args[0];
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf); // 获得文件系统
//获得路径数组
Path[] paths = new Path[args.length];
for (int i = 0; i < paths.length; i++) {
paths[i] = new Path(args[i]);
}
System.out.println("Path's number = " + paths.length); // 输出原本的路径个数
FileStatus[] status = fs.listStatus(paths); //通过路径生成FileStatus
System.out.println("FileStatue's number = " + status.length); // 输出有原本的路径个数产生的fileStatus 的个数
for(FileStatus ss : status) // Owner 是建这个目录或在文件的用户
{
System.out.println(ss.getOwner());
}
Path[] listedPaths = FileUtil.stat2Paths(status); //在将各个statue 中的文件信息和目录信息转换成路径
for (Path p : listedPaths) { // 输出路径
System.out.println(p);
}
}
}
// ^^ ListStatus
Hdfs 中 FileStatue 的使用
最新推荐文章于 2022-05-03 15:33:22 发布