HDFS 上的块多久复制一次?

问题描述

我有一个关于 hadoop hdfs 块复制的问题。假设一个块写在一个datanode上,DFS的复制因子为3,namenode在其他datanode上复制这个块需要多长时间?是瞬时的吗?如果没有,在将块写入数据节点后,假设该数据节点上的磁盘发生故障且无法恢复,是否意味着该块将永远丢失?还有namenode多久检查一次丢失/损坏的块?

解决方法

您可能想查看这篇文章,它对 hdfs 写入进行了很好的描述。它应该是即时的,具体取决于集群的繁忙程度:

https://data-flair.training/blogs/hdfs-data-write-operation/ 如果 DataNode 在 HDFS 中写入文件时失败会发生什么? 在向DataNode写入数据时,如果DataNode失败,则发生以下动作,这对写入数据的客户端是透明的。

  1. 管道关闭,然后将 ack 队列中的数据包添加到数据队列的前端,使故障节点下游的 DataNode 不会错过任何数据包。