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