gpt4 book ai didi

java - Hadoop 文件系统 : getUsed

转载 作者:可可西里 更新时间:2023-11-01 15:17:24 24 4
gpt4 key购买 nike

我正在尝试使用 FileSystem 类中的 getUsed() 函数:

Configuration l_configuration = new Configuration();

l_configuration.set("fs.default.name", "hdfs://localhost:9100");
l_configuration.set("mapred.job.tracker", "localhost:9101");
l_configuration.setBoolean("fs.hdfs.impl.disable.cache", true);

FileSystem l_fileSystem = FileSystem.get(l_configuration);

long size = 0;
size = l_fileSystem.getUsed();

System.out.println("Total size : "+size); // Total size : 0

但我肯定在我的 HDFS 中有一些文件。如果我执行以下命令 shell:

$ hadoop dfs -dus
hdfs://localhost:9100/user/xxx/yyy 358873405

如何使用getUsed()函数?

最佳答案

您需要考虑 DistributedFileSystem 而不是 FileSystem 才能正确获取大小。

将以下替换为,

FileSystem l_fileSystem = FileSystem.get(l_configuration);

long size = 0;
size = l_fileSystem.getUsed();

有了这个,

DistributedFileSystem l_fileSystem = (DistributedFileSystem) DistributedFileSystem.get(l_configuration);

long size = 0;
size = l_fileSystem.getDiskStatus().getUsed();

关于java - Hadoop 文件系统 : getUsed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com