假设:我有一个 hadoop 集群,其中每个数据幻灯片都设置为有 3 个副本。
有一天,一个datanode被拔掉(假设里面存储的数据没问题),然后hdfs会为这个节点存储的数据生成新的副本,这样data slide仍然有3个副本。 但是如果第二天再插上datanode,有些data slide有4个副本,那么hdfs就得删除4个副本中的1个。
我的问题是 hdfs 如何选择要删除的那个?随机?或者只删除最新的(这意味着数据节点将被清除)?
最佳答案
Question: But if Datanode is repaired and starts to work again, some data slide have 4 copies, then HDFS has to delete 1 of 4 copies
正如您所提到的,在 HDFS 中,当任何 Datanode 未插入的平衡器将在另一个节点中创建丢失的副本以维护 block 的适当复制因子。
现在如果我们想将相同/不同的节点包含到 HDFS 中,我们执行格式化
并将节点包含到集群中。因此,在任何时间点,集群中都不会存在过多的复制 block 。
关于hadoop - hdfs将如何选择要删除的副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41178399/