例如,我使用复制因子2将文件写入HDFS。我写入的节点现在具有该文件的所有块。该文件的所有块的其他副本分散在群集中的所有剩余节点周围。这是默认的HDFS策略。 如果我将文件的复制因子降低到1,会发生什么? HDFS如何决定从哪个节点删除哪些节点?我希望它尝试从文件块数最多的节点中删除块?
为什么我要问 - 如果确实如此,这将有意义 - 它将减轻文件的处理。因为如果所有块只有一个副本并且所有块都位于同一节点上,那么由于数据传输到集群中的其他节点,使用map-reduce处理文件会更加困难。
答案 0 :(得分:2)
当块变为over-replicated
时,name node
会选择要删除的副本。 name node
不希望减少托管副本的机架数量,其次更愿意从可用磁盘空间最少的data node
中删除副本。这可能有助于重新平衡群集上的负载。
答案 1 :(得分:1)
HDFS会从不同节点中随机删除过度复制的块,并进行重新平衡,这意味着它们不会仅从当前节点中删除。