如果在写操作的过程红有datanode发生故障要怎么办呢?
会先关闭首先建立的管道,确认队列中所有数据包都添加回数据队列的最前端,以确保故障节点下游的datanode不会漏掉任何一个数据包。为存储在另一个正常的datanode的当前数据块制定一个新的标识,并将该标识传给namenode,以便故障datanode在恢复以后删除存储的部分数据块。从管道中删除故障的datanode,基于两个正常的datanode构建一个新管线。余下的数据写入管线中正常的datanode。
在一个块被写入的期间可能有多个datanode同时发生故障,但非常少见,只要写入了dfs.namenode.replication.min的复本数(默认为1),写操作就会成功!并且这个块可以在集群中异步复制,直到达到目标副本数为止(dfs.replication的默认值为3)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。