在 Linux 环境下监控 HDFS(Hadoop Distributed File System) 的状态,常用方式可以分为 命令行工具、Web UI、JMX、日志以及第三方监控系统 几类。下面按实战角度给你一个清晰总结。
hdfs dfsadmin -report
输出内容包括:
hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
(适用于 HA 模式,判断是 active 还是 standby)
hdfs fsck /
可检查:
hdfs dfsadmin -safemode get
http://namenode-host:9870
http://namenode-host:50070
可查看:
http://datanode-host:9864
HDFS 各组件暴露 JMX 指标:
curl http://namenode-host:9870/jmx
curl http://datanode-host:9864/jmx
常用指标:
Hadoop:service=NameNode,name=FSNamesystem
Hadoop:service=DataNode,name=DataNodeInfo$HADOOP_HOME/logs/
重点日志:
hadoop-hdfs-namenode-*.loghadoop-hdfs-datanode-*.log常用命令:
tail -f hadoop-hdfs-namenode-master.log
grep ERROR hadoop-hdfs-datanode-*.log
jps
应看到:
netstat -tunlp | grep java
top
iostat -x 1
df -h
| 指标 | 建议阈值 |
|---|---|
| Missing Blocks | > 0 告警 |
| Dead DataNode | > 0 |
| 磁盘使用率 | > 85% |
| NameNode CPU | > 80% |
| 安全模式 | 长时间开启 |
jps
hdfs dfsadmin -report
hdfs fsck / -list-corruptfileblocks
curl -s localhost:9870/jmx | grep MissingBlocks
如果你愿意,我可以:
你现在是 测试环境还是生产环境?用的是 Hadoop 2 还是 3?