开发者社区> 问答> 正文

如果在写操作的过程红有datanode发生故障要怎么办呢?

如果在写操作的过程红有datanode发生故障要怎么办呢?

展开
收起
游客fbdr25iajcjto 2021-12-04 22:34:52 738 0
1 条回答
写回答
取消 提交回答
  • 会先关闭首先建立的管道,确认队列中所有数据包都添加回数据队列的最前端,以确保故障节点下游的datanode不会漏掉任何一个数据包。为存储在另一个正常的datanode的当前数据块制定一个新的标识,并将该标识传给namenode,以便故障datanode在恢复以后删除存储的部分数据块。从管道中删除故障的datanode,基于两个正常的datanode构建一个新管线。余下的数据写入管线中正常的datanode。

    在一个块被写入的期间可能有多个datanode同时发生故障,但非常少见,只要写入了dfs.namenode.replication.min的复本数(默认为1),写操作就会成功!并且这个块可以在集群中异步复制,直到达到目标副本数为止(dfs.replication的默认值为3)。

    2021-12-04 22:35:59
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载