hdfs java 目录大小_hadoop3.x HDFS java显示给定目录下的文件、目录信息(FileSystem的listLocatedStatus、listStatus、listStatus...

本文介绍了如何使用Hadoop3.x中的FileSystem API,通过listLocatedStatus、listStatus等方法获取HDFS目录下的文件和目录信息,包括文件大小、权限、所有者、修改时间等,并展示了Java代码示例。
摘要由CSDN通过智能技术生成

介绍

FileSystem 的 这几个方法,功能类似,都是 显示给定目录下的文件、目录信息,只是 形参、返回值 不同

RemoteIterator listLocatedStatus(Path f)RemoteIterator listLocatedStatus(Path f, PathFilter filter)FileStatus[] listStatus(Path f)FileStatus[] listStatus(Path[] f)FileStatus[] listStatus(Path[] files, PathFilter filter)FileStatus[] listStatus(Path f, PathFilter filter)RemoteIterator listStatusIterator(Path p)

形参总结:

Path f:路径

PathFilter filter:过滤器

返回值:

RemoteIterator:返回迭代器

FileStatus:可获取权限、所属用户、所属用户组、文件大小、创建时间、上次修改时间、副本数量、block大小、文件全路径名等

LocatedFileStatus 是 FileStatus 的子类,有 BlockLocation[] 属性,用于记录 Block 的网络位置,包括块副本所在的主机,与块关联的文件偏移量,长度,是否已损坏等。

java代码@Test

public void list() throws Exception{

//获取文件系统

Configuration configuration = new Configuration();

FileSystem fs = FileSystem.get(new URI("hdfs://localhost:9000"), configuration, "root");

FileStatus[] array=fs.listStatus(new Path("/"));

for(FileStatus status:array){

if(status.isDirectory()){

System.out.print("d");

}else{

System.out.print("-");

}

// 权限

System.out.print(status.getPermission()+"\t");

// 所属用户

System.out.print(status.getOwner()+"\t");

// 所属用户组

System.out.print(status.getGroup()+"\t");

// 大小

System.out.print(status.getLen()+"\t");

// 上次修改时间

Date date=new Date(status.getModificationTime());

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");

String time=sdf.format(date);

System.out.print(time+"\t");

// 副本数量

System.out.print(status.getReplication()+"\t");

// block大小

long size=status.getBlockSize()/1024/1024;

System.out.print(size+"MB\t");

// 文件名称

System.out.print(status.getPath().getName()+"\t");

System.out.println();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值