HDFS 大小和 hdfs 复制因子

HDFS size , and hdfs replication factor

希望能得到这里聪明人的指点

我们有 hadoop 集群和 5 个数据节点机器(工作机器)

我们的 HDFS 大小几乎是 80T ,我们有 98% 已用容量!!!

从经济方面来说,我们不能通过向数据节点添加磁盘来增加 HDFS 的大小

所以我们正在考虑将 HDFS 复制因子从 3 降低到 2

让我们做一个模拟,

如果我们将 hdfs 复制因子从 3 减少到 2,这意味着我们每个数据只有 2 个备份

但问题是 - 从前 3 个复制因子创建的第三个数据仍然存在于 HDFS 磁盘中

那么HDFS是怎么知道删除第三条数据的呢?还是 HDFS 知道该做什么?

或者也许 - 没有任何选项可以删除由于预览复制因子而创建的旧数据?

一般来说,3 是推荐的复制因子。如果你需要的话,有一个命令可以改变 HDFS 中现有文件的复制因子:

hdfs dfs -setrep -w <REPLICATION_FACTOR> <PATH>

路径可以是文件或目录。因此,要将所有现有文件的复制因子从 3 更改为 2,您可以使用:

hdfs dfs -setrep -w 2 /

请注意,-w 将强制命令等待,直到所有文件的复制都已更改。对于数 TB 的数据,这将需要一段时间。

要检查复制因子是否已更改,您可以使用 hdfs fsck / 并查看“平均块复制”。它应该从 3 变为 2。

查看 the command's docs 了解更多详情。

您可以通过更新 hdfs-site.xml 来更改将用于新文件的默认复制因子。