温馨提示×

linux hdfs如何监控状态

小樊
53
2026-09-07 14:55:49
栏目: 智能运维

在 Linux 环境下监控 HDFS(Hadoop Distributed File System) 的状态,常用方式可以分为 命令行工具、Web UI、JMX、日志以及第三方监控系统 几类。下面按实战角度给你一个清晰总结。


一、命令行方式(最常用)

1. 查看 HDFS 整体状态

hdfs dfsadmin -report

输出内容包括:

  • Live / Dead DataNode 数量
  • 总容量、已用容量、剩余容量
  • 各 DataNode 状态

2. 查看 NameNode 状态

hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2

(适用于 HA 模式,判断是 active 还是 standby)

3. 查看文件系统健康

hdfs fsck /

可检查:

  • 丢失块(missing blocks)
  • 损坏块(corrupt blocks)
  • 副本不足

4. 查看安全模式

hdfs dfsadmin -safemode get

二、Web UI 监控(最直观)

NameNode Web UI

  • 默认端口(Hadoop 3):
    http://namenode-host:9870
    
  • 老版本(Hadoop 2):
    http://namenode-host:50070
    

可查看:

  • HDFS 总容量 / 使用率
  • DataNode 列表
  • 副本状态
  • 块信息

DataNode Web UI

http://datanode-host:9864

三、JMX 监控(适合自动化)

HDFS 各组件暴露 JMX 指标:

curl http://namenode-host:9870/jmx
curl http://datanode-host:9864/jmx

常用指标:

  • Hadoop:service=NameNode,name=FSNamesystem
    • CapacityTotal
    • CapacityUsed
    • MissingBlocks
  • Hadoop:service=DataNode,name=DataNodeInfo

四、日志监控(排查问题)

关键日志路径(默认)

$HADOOP_HOME/logs/

重点日志:

  • hadoop-hdfs-namenode-*.log
  • hadoop-hdfs-datanode-*.log

常用命令:

tail -f hadoop-hdfs-namenode-master.log
grep ERROR hadoop-hdfs-datanode-*.log

五、系统级监控(Linux 层)

1. 进程是否存活

jps

应看到:

  • NameNode
  • DataNode
  • JournalNode(HA)

2. 端口监听

netstat -tunlp | grep java

3. 资源监控

top
iostat -x 1
df -h

六、第三方监控系统(生产推荐)

1. Prometheus + JMX Exporter

  • 采集 HDFS JMX
  • 配 Grafana 面板

2. Ambari / Cloudera Manager

  • 自动监控 HDFS
  • 告警、健康检查

3. Zabbix

  • 监控进程、端口、磁盘

七、常见告警指标建议

指标 建议阈值
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

如果你愿意,我可以:

  • 给你一套 HDFS 监控脚本
  • 帮你配置 Prometheus + Grafana
  • HA / 非 HA 场景分别说明

你现在是 测试环境还是生产环境?用的是 Hadoop 2 还是 3

0