HDFS:添加新节点后如何释放space/rebalance?

HDFS: How to free space/rebalance after adding new node?

我向我的 HDFS 添加了第二个节点。在添加节点之前,主服务器的磁盘使用率为 91%。之后 free space 还是越来越小。我用 10 的阈值重新平衡了集群,并将块复制因子设置为 3。我的 Hadoop 版本是 2.2.4.2-2。在我的主节点上释放 space 有什么想法吗?

您只有一个数据节点,大概包含所有 HDFS 块。每个块只有一个副本。如果你添加第二个节点并保持复制因子为 3,那么你最多将每个块复制到新节点,以获得实际的复制因子 2(每个块有 2 个副本,每个节点一个)。前单个节点上没有 space 减少。如果您然后添加第三个数据节点,您最多将为每个块实现 3 个副本,每个节点一个,原始节点上没有减少 space。只有当您添加第 4 个节点时,才能通过将大约 1/4 的块副本从原始节点迁移出去来减少磁盘使用量。

您要么必须降低复制因子,要么添加 3 个以上的节点。 6 个节点将在复制因子 3 时实现 50% 的减少。或者将复制因子更改为 1 并仅使用 2 个节点实现 50% 的减少,但有丢失块的风险。