datanode 挂了?

问答 yjx ⋅ 于 2023-11-28 15:47:24 ⋅ 最后回复由 yjx 2023-11-28 17:47:26 ⋅ 734 阅读

hdfs在写的过程中datanode挂了怎么处理?
看网上说首先 Pipeline数据流管道会被关闭,ACK queue中的packets会被添加到data queue的前面以确保不会发生packets数据包的丢失。
我这里有两个问题
第一个是ACK queue在哪里,有的说在pipeline第一个datanode上,有的说在客户端上
第二个是ACK queue中的packets会被添加到data queue的前面,不会造成数据的重复发送吗

成为第一个点赞的人吧 :bowtie:
回复数量: 2
  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2023-11-28 17:29:37
    • 第一个问题:pipeline指定在第一个datanode上,因为当数据写入过程中,Pipeline负责将数据流传输到各个DataNode。每个DataNode都有一个ACK Queue,用于存储其他DataNode对于收到数据的确认(ACK)信息。在Pipeline的第一个DataNode上维护ACK Queue是为了能够追踪数据流在Pipeline中的状态。也就是说其它DataNode的数据写入是由第一个DataNode跟踪的,如果在客户端上那在有一个写入请求的时候还好,如果是大量并发的时候客户端就容易形成瓶颈了,就会影像写入效率,大数据组件都是分布式的,所以架构设计上都尽量考虑单点问题,那自然不可能是在客户端上。
    • 第二个问题:数据可能会重发,但是这么做保存数据不丢失,不用担心数据重复问题,因为HDFS客户端和DataNode之间会使用序列号等机制来确保数据的有序传输,并且已经确认过的数据不会重复发送。
  • yjx
    2023-11-28 17:47:26

    @青牛 感谢

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter