【HDFS】自动踢除pipeline中的慢节点

170 篇文章 147 订阅 ¥29.90 ¥99.00

写在前面:
之前发过一篇文章,【HDFS】HDFS-16348:将慢节点标记为badnode进而从pipeline中踢除并进行pipeline恢复

本文和这篇文章中使用的方法思路差不多,区别在于指标的统计以及慢节点状态的判定方面。在我们公司的线上代码里,两个patch是互相兼容的,可以一起工作。

首先用通俗的话介绍一下整体的思路吧,读者也可先阅读一下之前的那篇文章,效果更佳。

整体思路: 我们收集整个写过程中的每个阶段的耗时(dn->下游dn),然后返回给客户端,在客户端侧做收集和统计工作,如果判断某个节点是慢节点,那么就把它给剔除掉,这样就不会因为一个节点导致整体的写入变慢了。这就是整体思路,很简单。

那么问题来了:

  1. 如何统计网络和磁盘耗时并发送给客户端呢?
  2. 如何判断某个datanode是慢节点呢?
  3. 如何踢除慢节点,再补充新的节点到pipeline呢?

接下来我们就来依次解答这三个问题。

一、如何统计网络和磁盘耗时并发送给客户端呢?

因为HDFS写数据时是个pipeline的结构,所以我们需要把下游节点统计到的指标信息发送给上游节点,由上游节点进行汇总,最终由pipeline中最上游的datanode发送给客户端。

那如何把统计信息从下游Datanode发送到上游是我们必须要解决的问题。根据写数据pipeline的模型,上游向下游发送的每一个Packet都需要收到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叹了口丶气

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

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

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

打赏作者

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

抵扣说明:

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

余额充值