【HDFS】HDFS-16348:将慢节点标记为badnode进而从pipeline中踢除并进行pipeline恢复

171 篇文章 148 订阅 ¥29.90 ¥99.00
本文介绍了HDFS PR HDFS-16348,当DataNode变为慢节点时,如何将其标记为badnode并从pipeline中移除,以及Pipeline恢复过程。Namenode通过心跳响应告知DataNode是否为慢节点,如果超过阈值,客户端会踢除慢节点并重建pipeline。PipelineAck和ResponseProcessor在这一过程中起到关键作用。
摘要由CSDN通过智能技术生成

本文的主要内容是介绍这个PR(Pull Request):HDFS-16348. Mark slownode as badnode to recover pipeline (#3704)

通过本文可以获得如下知识:

  1. datanode如何获得自己是SLOW状态的?
  2. PipelineAck类的字段详解。
  3. Client侧将慢datanode标记为bad datanode后剔除掉以及添加一个新datanode到pipeline的过程。

先说下这个PR的前置基础知识以及主要思路,后面再详细分析源码:

在HDFS中,Datanode会定期地向Namenode进行心跳汇报。Namenode接收到Datanod的心跳后,会发送心跳响应给Datanode,心跳响应中会包含Datanode指令、此Datanode是否是慢节点等信息。Datanode接收到Namenode的心跳响应后,解析其中的内容,拿到是否是SLOW节点的信息。

为什么这里Datanode SLOW的信息是由Namenode侧返回的呢?
答:因为一个datanode并不能知道自己是不是慢节点,它慢是由其它的datanode或客户端在读写的时候统计出来的读写时间超过某个配置的阈值才叫慢&#x

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叹了口丶气

觉得有收获就支持一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值