温馨提示×

linux hdfs配置怎样监控

小樊
35
2026-09-19 20:23:58
栏目: 智能运维

在 Linux 环境下监控 HDFS(Hadoop Distributed File System) 通常可以从命令行工具、Web UI、日志、JMX、第三方监控系统几个层面来做。下面按“由浅入深”的方式给你总结。


一、最基础的命令行监控

1. hdfs dfsadmin 命令

hdfs dfsadmin -report

可查看:

  • 各 DataNode 状态
  • 容量使用情况
  • 副本缺失情况

其他常用:

hdfs dfsadmin -safemode get   # 查看安全模式
hdfs dfsadmin -metasave file  # 元数据信息

2. hdfs fsck 检查文件系统健康

hdfs fsck /

重点看:

  • 缺失块(Missing blocks)
  • 损坏块(Corrupt blocks)
  • 副本不足(Under-replicated)

更详细:

hdfs fsck / -files -blocks -locations

3. 查看 NameNode / DataNode 进程

jps

确认:

  • NameNode
  • DataNode
  • SecondaryNameNode(或 JournalNode / ZKFC)

二、Web UI 监控(最直观)

NameNode Web UI

默认端口:

http://namenode-host:9870   # Hadoop 3.x
http://namenode-host:50070  # Hadoop 2.x

可看到:

  • 集群总容量
  • Live / Dead DataNode
  • 副本状态
  • 文件系统浏览

DataNode Web UI

http://datanode-host:9864

三、日志监控(问题定位关键)

常见日志路径(取决配置)

$HADOOP_HOME/logs/

重点日志:

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

常用查看:

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

四、JMX 指标监控(生产推荐)

HDFS 暴露 JMX(Java Management Extensions)指标。

查看 NameNode JMX

http://namenode:9870/jmx

关键指标:

  • Hadoop:service=NameNode,name=FSNamesystem
    • MissingBlocks
    • UnderReplicatedBlocks
  • Hadoop:service=NameNode,name=JvmMetrics

可通过:

  • Prometheus + JMX Exporter
  • Zabbix
  • Grafana

五、第三方监控系统(企业常用)

1. Prometheus + Grafana

  • 使用 jmx_exporter
  • 采集 HDFS JMX
  • Grafana 展示面板

2. Ambari / Cloudera Manager

  • 自动监控 HDFS
  • 告警(磁盘满、节点掉线)

3. Zabbix

  • 监控:
    • 进程存活
    • 端口
    • 磁盘使用率
    • hdfs dfsadmin -report

六、常见监控告警点(建议重点)

✅ DataNode 掉线
✅ Missing Blocks > 0
✅ 磁盘使用率 > 85%
✅ NameNode 进入 SafeMode
✅ 副本数不足
✅ RPC 延迟过高


七、简单监控脚本示例(Linux)

#!/bin/bash
hdfs dfsadmin -report | grep "Missing blocks" 
if [ $? -eq 0 ]; then
  echo "HDFS has missing blocks!" | mail -s "HDFS Alert" admin@xxx.com
fi

如果你愿意,我可以:

  • 给你 HDFS + Prometheus 完整配置
  • 或针对 Hadoop 2.x / 3.x 分别说明
  • 或帮你写 Zabbix 监控项

你目前是 测试环境还是生产集群?用的 Hadoop 几

0