我正在尝试使用 ContentSummary.getSpaceConsumed
本答案中建议的方法。
考虑到复制因素,我无法正确获得空间消耗。复制因子是2,我预期的大小是上述方法中实际文件大小的两倍。
大小 size-test
文件为3145728字节。如图所示 dfs -ls
命令以及复制因子。
ubuntu@ubuntu:~/ht$ sudo -u hdfs hdfs dfs -ls /var/lib/ubuntu
Found 2 items
-rw-r--r-- 2 ubuntu ubuntu 3145728 2020-09-08 09:55 /var/lib/ubuntu/size-test
drwxrwxr-x - ubuntu ubuntu 0 2020-09-07 06:37 /var/lib/ubuntu/test
但当我运行以下代码时,
String path = "/etc/hadoop/conf/";
conf.addResource(new Path(path + "core-site.xml"));
conf.addResource(new Path(path + "hdfs-site.xml"));
long size = FileContext.getFileContext(conf).util().getContentSummary(fileStatus).getSpaceConsumed();
System.out.println("Replication : " + fileStatus.getReplication());
System.out.println("File size : " + size);
输出为
Replication : 0
File size : 3145728
文件大小和复制因子似乎都不正确。 /etc/hadoop/conf/hdfs-site.xml
包含以下配置:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
我在这里遗漏了什么,以至于复制因子被dfsapi忽略了吗?
暂无答案!
目前还没有任何答案,快来回答吧!