1)关闭管道
2)将已经发送到管道中,还没有收到确认的数据包写回数据队列,这样无论那个节点发生故障,都不会发生数据丢失。这个过程是在确认队列中将未收到确认的数据包删除,写回到数据队列。
3)正常工作的DN获得新的版本号(利用namenode租约中的信息可以获得最新时间戳版本),这样故障节点恢复后由于版本信息不对,故障节点恢复后会被删除。
4)在正常工作的DN中,根据租约信息选举出一个主DataNode,与其他正常DN通信。获取每个DN当前数据块的大小,从中选择一个最小值,将每个正常的DN同步到该大小。然后重新建立管道。
5)在管道中删除故障节点,将数据写入管道中其他正常节点。
6)当文件关闭后,NameNode发现副本数量不足,会在另一个节点创建一个新的副本。
在向HDFS中写数据的时候,当写某一副本时出错怎么处理?
最新推荐文章于 2022-10-17 11:36:42 发布