我有一个关于hadoop hdfs块复制的问题。假设一个块写在一个datanode上,而dfs有一个复制因子3,namenode在其他datanode上复制这个块需要多长时间?是瞬间的吗?如果不是,在将块写入datanode之后,假设此datanode上的磁盘发生故障,并且无法恢复,是否意味着块将永远丢失?namenode多久检查一次丢失/损坏的块?
6jygbczu1#
您可能想回顾一下这篇文章,它对hdfs编写有很好的描述。它应该是立即的,这取决于集群的繁忙程度:https://data-flair.training/blogs/hdfs-data-write-operation/ 如果datanode在hdfs中写入文件时失败,会发生什么情况?在向datanode写入数据时,如果datanode失败,那么将执行以下操作,这对写入数据的客户端是透明的。管道关闭后,ack队列中的数据包被添加到数据队列的前端,使得故障节点下游的datanode不会丢失任何数据包。
1条答案
按热度按时间6jygbczu1#
您可能想回顾一下这篇文章,它对hdfs编写有很好的描述。它应该是立即的,这取决于集群的繁忙程度:
https://data-flair.training/blogs/hdfs-data-write-operation/ 如果datanode在hdfs中写入文件时失败,会发生什么情况?在向datanode写入数据时,如果datanode失败,那么将执行以下操作,这对写入数据的客户端是透明的。
管道关闭后,ack队列中的数据包被添加到数据队列的前端,使得故障节点下游的datanode不会丢失任何数据包。