美文网首页
【HDFS】自动踢除pipeline中的慢节点

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

作者: 小北觅 | 来源:发表于2022-07-06 12:05 被阅读0次

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

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

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

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

那么问题来了:

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

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

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

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

那如何把统计信息从下游Datanode发送到上游是我们必须要解决的问题。根据写数据pipeline的模型,上游向下游发送的每一个Packet都需要收到Ack信息后才能确定发送成功或者失败,因此我们在Ack响应体里加上我们需要传递给上游的信息就OK了,这部分的实现是参考HDFS现有代码的框架的,后面再详细说。具体做法如下:

相关文章

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

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

  • HDFS 的 pipeline

    在副本冗余模式的分布式存储系统中,站在数据安全的角度来说,会采用同步复制的方案,即将数据都写入所有节点之后才返回给...

  • Hadoop HDFS 教程(一)介绍

    这个Hadoop HDFS教程的目标是教会你,什么是HDFS, 什么是不同节点,在HDFS中数据是如何存储的,HD...

  • Hadoop HDFS分布式文件系统Docker版

    一、Hadoop文件系统HDFS 构建单节点的伪分布式HDFS 构建4个节点的HDFS分布式系统 nameNode...

  • 初识Ingest Pipeline

    初识Ingest Pipeline ES在具备node.ingest:true的节点上提供了pipeline功能,...

  • Ranger-Hdfs插件安装

    Ranger-Hdfs插件ranger-0.6.0-hdfs-plugin安装到Hdfs的所有NameNode节点...

  • Redis笔记7--*瑞士军刀

    *慢查询 慢查询的两个配置: pipeline 将100条命令封装为一次pipeline,然后执行100次pipe...

  • HDFS 数据块管理

    Namenode 维护着 HDFS 中两个重要的关系: HDFS 文件系统和目录树 数据块和数据节点的对应关系,即...

  • DevOps中的测试实践

    万物皆可pipeline,流程自动化解放生产力。在DevOps的pipeline中,我们发现测试环节也需要一套流水...

  • HDFS基础知识

    HDFS基础架构与核心概念 HDFS架构图 HDFS核心概念 Active NameNode(文件系统的管理节点)...

网友评论

      本文标题:【HDFS】自动踢除pipeline中的慢节点

      本文链接:https://www.haomeiwen.com/subject/vtcybrtx.html