如何减少 HDFS 目录中的复制因子及其影响
How to reduce the replication factor in a HDFS directory and it's impact
我们正在使用复制因子为 3 的 Hortonworks HDP 2.1 (HDFS 2.4)。
我们最近停用了一个数据节点,这在集群中留下了很多复制不足的块。
集群现在正试图通过在其他节点之间分配复制块来满足复制因子。
如何停止该进程。我可以接受一些文件只被复制两次。如果我在该目录中将复制因子更改为 2,该进程是否会终止?
对于包含 3 个副本的文件的目录,将复制因子设置为 2 有什么影响。集群是否会启动另一个进程以删除每个文件的 3 个副本的多余副本?
感谢您对此提供的帮助。也请分享参考资料。
谢谢。
Sajeeva.
We have recently decommissioned a datanode and that left a lot of under replicated blocks in the cluster.
如果 DataNode 被优雅地退役,那么它不应该导致复制不足的块。但是,作为一种边缘情况,如果停用节点使总节点数低于文件上设置的复制因子,那么根据定义,该文件的块将被复制不足。 (例如,考虑一个具有 3 个 DataNode 的 HDFS 集群。停用一个节点会导致剩余 2 个 DataNode,因此现在复制因子为 3 的文件具有复制不足的块。)
在停用期间,HDFS 将托管在该 DataNode 上的块重新复制(复制)到集群中的其他 DataNode,以便维持所需的复制因子。此处有更多详细信息:
- How do I correctly remove nodes in Hadoop?
- Decommission DataNodes
- How do I stop that process. I am OK with some files being replicated only twice. If I change the replication factor to 2 in that directory, will that process be terminated?
没有确定的方法来终止整个过程。但是,如果你将一些复制不足的文件的复制因子降低到 2,那么 NameNode 将停止为这些文件的块安排重新复制工作。这意味着对于那些文件的块,HDFS 将停止跨不同的 DataNode 复制新副本。
从容错的角度来看,典型的复制因子 3 是可取的。您可能会考虑稍后将这些文件的复制因子设置回 3。
- What's the impact of making the replication factor to 2 for a directory which has files with 3 copies. Will the cluster start another process to remove the excess copy for each file with 3 copies?
是的,NameNode 会将这些文件标记为过度复制。作为响应,它将在 DataNode 上安排块删除以恢复所需的复制因子 2。这些块删除被异步分派到 DataNode,以响应它们的心跳。在 DataNode 中,块删除是异步执行的,以从磁盘中清除底层文件。
Apache Hadoop Wiki 中描述了更多详细信息。
我们正在使用复制因子为 3 的 Hortonworks HDP 2.1 (HDFS 2.4)。 我们最近停用了一个数据节点,这在集群中留下了很多复制不足的块。
集群现在正试图通过在其他节点之间分配复制块来满足复制因子。
如何停止该进程。我可以接受一些文件只被复制两次。如果我在该目录中将复制因子更改为 2,该进程是否会终止?
对于包含 3 个副本的文件的目录,将复制因子设置为 2 有什么影响。集群是否会启动另一个进程以删除每个文件的 3 个副本的多余副本?
感谢您对此提供的帮助。也请分享参考资料。 谢谢。 Sajeeva.
We have recently decommissioned a datanode and that left a lot of under replicated blocks in the cluster.
如果 DataNode 被优雅地退役,那么它不应该导致复制不足的块。但是,作为一种边缘情况,如果停用节点使总节点数低于文件上设置的复制因子,那么根据定义,该文件的块将被复制不足。 (例如,考虑一个具有 3 个 DataNode 的 HDFS 集群。停用一个节点会导致剩余 2 个 DataNode,因此现在复制因子为 3 的文件具有复制不足的块。)
在停用期间,HDFS 将托管在该 DataNode 上的块重新复制(复制)到集群中的其他 DataNode,以便维持所需的复制因子。此处有更多详细信息:
- How do I correctly remove nodes in Hadoop?
- Decommission DataNodes
- How do I stop that process. I am OK with some files being replicated only twice. If I change the replication factor to 2 in that directory, will that process be terminated?
没有确定的方法来终止整个过程。但是,如果你将一些复制不足的文件的复制因子降低到 2,那么 NameNode 将停止为这些文件的块安排重新复制工作。这意味着对于那些文件的块,HDFS 将停止跨不同的 DataNode 复制新副本。
从容错的角度来看,典型的复制因子 3 是可取的。您可能会考虑稍后将这些文件的复制因子设置回 3。
- What's the impact of making the replication factor to 2 for a directory which has files with 3 copies. Will the cluster start another process to remove the excess copy for each file with 3 copies?
是的,NameNode 会将这些文件标记为过度复制。作为响应,它将在 DataNode 上安排块删除以恢复所需的复制因子 2。这些块删除被异步分派到 DataNode,以响应它们的心跳。在 DataNode 中,块删除是异步执行的,以从磁盘中清除底层文件。
Apache Hadoop Wiki 中描述了更多详细信息。