HDFS磁盘写满问题分析
探讨hdfs的datanode节点磁盘被写满的原因分析和相关规避方案。关于常见分布式组件高可用设计原理的理解和思考
1. 问题说明
在生产上遇到了这样的一个问题,通过hdfs dfsadmin -report
命令可以获取hdfs集群的磁盘使用情况统计信息。
Rack: /idc1
Decommission Status : Normal
Configured Capacity: 35722170777600 (32.49 TB)
DFS Used: 33921395016733 (30.85 TB)
Non DFS Used: 1800771816419 (1.64 TB)
DFS Remaining: 3944448 (3.76 MB)
DFS Used%: 94.96%
DFS Remaining%: 0.00%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 7
Last contact: Sat Mar 16 22:52:41 CST 2024
这里的几个关键信息
- Configured Capacity: 35722170777600 (32.49 TB),代表当前节点能够使用的最大磁盘容量,由当前节点所有磁盘加合获取
- DFS Used%: 94.96%,代表当前节点,在hdfs系统中的磁盘使用率,namenode会根据该参数判断该节点是否还能继续写入。由于使用率已经很高,namenode在分析新的数据写入时,通常不会继续给这个节点分配数据(不是绝对)
- Non DFS Used: 1800771816419 (1.64 TB),指的是DataNode上除了HDFS数据存储之外的其他用途所占用的空间。这可能包括操作系统、日志、临时文件、Hadoop数据缓存等。Non DFS Used很大通常是由于这些因素导致的,可能是由于数据缓存、日志文件或其他临时文