HDFS是一个分布式文件存储系统,可以支持数千台以上规模的集群。单台节点发生故障的概率比较低,但是当集群中节点非常多的时候,集群中有节点发生故障的概率就很高了。因此需要有效的手段来及时检查出慢节点,指导我们进行故障排查、硬件维修、慢节点规避等等。
本文就来简要介绍一下HDFS中关于慢节点检测的相关功能。通过本文可以获得如下知识:
① datanode写pipeline的耗时是怎么计算出来的?
② 磁盘读、写、元数据操作耗时怎么计算出来的?
③ 如何判断某个节点是慢节点?
介绍慢节点之前,我们得先回顾一下HDFS写pipeline的模型。如下图所示:
在写pipeline的过程中,如果出现了网络慢节点,步骤1的耗时会明显增加,如果出现的是磁盘慢节点,步骤2的耗时会明显增加,因此,HDFS的慢节点监控,主要是监控步骤1和步骤2的耗时。网络慢节点用Slow Peer指代,磁盘慢节点用Slow Disk指代。