在向HDFS中写数据的时候,当写某一副本时出错怎么处理?

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值