4

在大多数 Hadoop 发行版的最新版本中,HDFS 使用报告似乎报告了空间而不考虑复制因子,对吗?

当查看 Namenode Web UI 和/或运行“hadoop dfsadmin -report”命令时,可以看到如下所示的报告:

Configured Capacity: 247699161084 (230.69 GB)
Present Capacity: 233972113408 (217.9 GB)
DFS Remaining: 162082414592 (150.95 GB)
DFS Used: 71889698816 (66.95 GB)
DFS Used%: 30.73%
Under replicated blocks: 40
Blocks with corrupt replicas: 6
Missing blocks: 0

根据这个集群的机器大小,这个报告似乎没有考虑三重复制... IE 如果我将文件放在 HDFS 上,我应该自己考虑三重复制。

例如,如果我在 HDFS 上放置了一个 50GB 的文件,我的 HDFS 是否会危险地接近满(因为该文件似乎会被复制 3 次,用完当前剩余的 150GB)?

4

2 回答 2

14

让我们清楚地定义每个术语的含义。

  1. 配置容量:它是可用于存储的 HDFS 的总容量。因此,如果您有 4 个节点并且每个节点有 50 GB 容量,则配置的容量将为 200 GB。在配置容量的情况下,复制因子无关紧要。

  2. DFS Used:这是 HDFS 已用完的存储空间量。除以复制因子使用的 DFS 以获取未经复制而存储的文件的实际大小。因此,如果您使用的 DFS 为 60 GB,并且您的复制因子为 3,则文件的实际大小为 60/3 = 20 GB。

  3. DFS Remaining:这是 HDFS 仍可用的存储空间量。如果您有 150 GB 的剩余存储空间,这意味着您最多可以存储 150/3 = 50 GB 的文件,而不会超出您的配置容量(假设复制因子 = 3)。

  4. 当前容量:为元数据分配空间后可用于存储用户文件的存储空间量。区别:(Configured capacity - Present capacity)用于存储文件系统元数据。和inode信息。

希望这可以清除它。

于 2013-07-25T20:10:57.980 回答
3

dfsadmin 报告确实考虑了复制。如果您想要预复制使用的字节,请使用:

hdfs dfs -du -s /
于 2013-07-25T19:28:54.623 回答