Hadoop hdfs如何删除复制的块

Hadoop hdfs如何删除复制的块,hadoop,hdfs,replication,Hadoop,Hdfs,Replication,例如,我使用复制因子2将一个文件写入HDFS。我正在写入的节点现在拥有文件的所有块。文件所有块的其他副本分散在群集中的所有剩余节点周围。这是默认的HDFS策略。 如果将文件的复制因子降低到1,会发生什么情况? HDFS如何决定从哪些节点删除哪些块?我希望它尝试从文件中块数最多的节点中删除块 为什么我要问——如果是这样的话,这是有意义的——它将减轻文件的处理。因为如果所有块只有一个副本,并且所有块都位于同一个节点上,那么使用map reduce处理文件会比较困难,因为数据会传输到群集中的其他节点。

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


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

HDFS会从不同节点随机删除过多的复制块,和被重新平衡,这意味着它们不只是从当前节点中删除。

当一个块被
过度复制时,
名称节点
选择要删除的副本。
name节点
不希望减少承载复制副本的机架数量,其次希望以最少的可用磁盘空间从
数据节点
删除复制副本。这可能有助于重新平衡集群上的负载


来源:

我知道HDFS有“rebalance”命令,从节点的角度来看,意思是重新平衡节点的使用,但我对文件重新平衡一无所知。是的,HDFS在写入或增加复制因子时尝试将文件块放在不同的节点上,但这不是我的问题。你能链接任何文档吗;请参考这个。我希望这些会有所帮助。这就是我所说的——重新平衡只是关于数据节点和相关机架上使用的总空间的整体块的重新平衡。正如我在问题中所问的,这不是关于每个数据节点上有多少个文件块的单独文件。基本上,平衡和复制因子是不同的主题。如果您还提供信息源(例如文档,或者您正在为HDFS做贡献,并且了解代码库),那将非常好。谢谢。看起来是一篇很棒的文章。