hdfs如何删除过度复制的块

时间:2015-06-25 09:56:30

标签: hadoop hdfs replication

例如,我使用复制因子2将文件写入HDFS。我写入的节点现在具有该文件的所有块。该文件的所有块的其他副本分散在群集中的所有剩余节点周围。这是默认的HDFS策略。 如果我将文件的复制因子降低到1,会发生什么? HDFS如何决定从哪个节点删除哪些节点?我希望它尝试从文件块数最多的节点中删除块?

为什么我要问 - 如果确实如此,这将有意义 - 它将减轻文件的处理。因为如果所有块只有一个副本并且所有块都位于同一节点上,那么由于数据传输到集群中的其他节点,使用map-reduce处理文件会更加困难。

2 个答案:

答案 0 :(得分:2)

当块变为over-replicated时,name node会选择要删除的副本。 name node不希望减少托管副本的机架数量,其次更愿意从可用磁盘空间最少的data node中删除副本。这可能有助于重新平衡群集上的负载。

来源:The Architecture of Open Source Applications

答案 1 :(得分:1)

HDFS会从不同节点中随机删除过度复制的块,并进行重新平衡,这意味着它们不会仅从当前节点中删除。