精简要了解HDFS网络慢节点和磁盘慢节点监控

Posted 叹了口丶气

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精简要了解HDFS网络慢节点和磁盘慢节点监控相关的知识,希望对你有一定的参考价值。

HDFS是一个分布式文件存储系统,可以支持数千台以上规模的集群。单台节点发生故障的概率比较低,但是当集群中节点非常多的时候,集群中有节点发生故障的概率就很高了。因此需要有效的手段来及时检查出慢节点,指导我们进行故障排查、硬件维修、慢节点规避等等。

本文就来简要介绍一下HDFS中关于慢节点检测的相关功能。
介绍慢节点之前,我们得先回顾一下HDFS写pipeline的模型。如下图所示:

在写pipeline的过程中,如果出现了网络慢节点,步骤1的耗时会明显增加,如果出现的是磁盘慢节点,步骤2的耗时会明显增加,因此,HDFS的慢节点监控,主要是监控步骤1和步骤2的耗时。网络慢节点用Slow Peer指代,磁盘慢节点用Slow Disk指代。

一、Slow Peer(网络慢节点)

网络慢节点的汇总报告信息由SlowPeerReports类表示。

SlowPeerReports里面有个Map数据结构,映射关系是:
DataNode’s DataNodeUUID -> its aggregate latency as seen by the reporting node.

翻译过来是:Datanode的DataNodeUUID -> 此datanode被观察到的聚合后的延迟。

SlowPeerReports类的构造方法是私有的,因此不能直接new。不过它提供了一个static类型的create方法,用来在其他类中创建SlowPeerReports对象。如下图:

以上是关于精简要了解HDFS网络慢节点和磁盘慢节点监控的主要内容,如果未能解决你的问题,请参考以下文章

HDFS慢节点监控及处理

Hadoop权威指南摘录---1

GP数据库查询慢的问题排查及优化

count(*)为什么慢?和优化

HDFS中的磁盘和数据节点大小

JAVA面试题之三—Mysql索引了解嘛?怎么优化查询效率?