如何在java代码中获得hdfs可用空间?

ubof19bj  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(344)

要获取hdfs中的可用空间,我可以使用以下命令:

hadoop fs -df /

但我需要使用java代码访问它。hadoop文件系统api似乎没有提供免费的hdfs空间。
我可以找到df命令的java等价物,但无法理解如何使用它。
有人能帮忙吗?

bqjvbblv

bqjvbblv1#

在研究了命令如何工作的代码之后,我发现它使用hadoop文件系统api来获取 FsStatus 对象。此对象提供已使用和可用的hdfs空间。
获取此信息的代码可以是:

Configuration conf = new Configuration();
    FileSystem fs = FileSystem.get(conf);

    Path path = new Path("/");
    long used = fs.getStatus(path).getUsed();
    long available = fs.getStatus(path).getRemaining();

相关问题