2016-07-28 53 views
0

我添加了第二个节点到我的HDFS。在添加节点之前,主服务器的磁盘使用率为91%。之后,可用空间仍然越来越小。我使用阈值10重新平衡了群集,并且块复制因子设置为3.我的Hadoop版本为2.2.4.2-2。任何想法来释放我的主节点上的空间?HDFS:如何在添加新节点后释放空间/重新平衡?

+0

什么是您的“主服务器”? HDFS有namenode和datanode。没有'主'。 –

+0

我的'主服务器'包含namenode和一个datanode。第二个服务器是第二个datanode。 – Jonas

+0

因此,您在2个datanode群集上具有复制因子3? –

回答

0

你有一个单一的datanode,大概是所有的HDFS块。每个块只有一个副本。如果添加第二个节点并保留复制因子3,那么您至多会将每个块复制到新节点,以获取实际的复制因子2(每个块具有2个副本,每个节点上一个)。前一个节点没有空间减少。如果添加第三个数据节点,最多可以为每个块创建3个副本,每个节点创建一个,而不会减少原始节点上的空间。只有添加第4个节点时,才能实现一些磁盘使用率的降低,方法是将大约1/4的块副本从原始节点中移出。

您必须减少复制因子或添加3个以上的节点。在复制因子3下6个节点将实现50%的减少。或者将复制因子更改为1,并且只有2个节点减少50%,存在丢失块的风险。

+0

感谢您的回答!如果我将块复制因子降低到2,每个数据节点都有一个每个块的副本并实现33%的减少,对吧?仅当您添加3个节点时才可使用 – Jonas

+0

。两个节点上的复制因子2必须在每个节点上放置100%的块。 –

+0

只是为了确定。高于datanode数量的复制因子将被忽略,每个datanode只包含一个块的一个副本?我有点困惑,因为节点1的数据文件夹的大小是1,7TB,节点2的大小是1,2TB。 – Jonas

相关问题