温馨提示×

centos怎样监控hdfs状态

小樊
47
2026-10-06 09:21:37
栏目: 智能运维

在 CentOS 上监控 HDFS(Hadoop Distributed File System)状态,可以从命令行工具、Web UI、系统指标、第三方监控几个层面来做。下面按常用程度给你一个系统性的说明。


一、使用 Hadoop 自带命令行工具(最常用)

1. 查看 HDFS 整体状态

hdfs dfsadmin -report

可以看到:

  • 总容量
  • 已用 / 剩余空间
  • Live / Dead DataNode 数量
  • 每个 DataNode 的状态

2. 检查 NameNode 状态

hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2

(适用于 HA 模式)

3. 查看文件系统健康

hdfs fsck / -files -blocks -locations

用于检查:

  • 块是否缺失
  • 副本是否不足
  • 文件是否损坏

4. 检查安全模式

hdfs dfsadmin -safemode get

二、通过 Web UI 监控(直观)

NameNode Web UI

默认端口:

  • Hadoop 2.x:http://namenode:50070
  • Hadoop 3.x:http://namenode:9870

可以查看:

  • HDFS 总览
  • DataNode 列表
  • 副本状态
  • 读写吞吐量

DataNode Web UI

  • http://datanode:9864(Hadoop 3.x)

三、CentOS 系统级监控(辅助)

1. 进程监控

jps

确认关键进程:

  • NameNode
  • DataNode
  • ResourceManager
  • NodeManager

2. 系统资源

top
free -h
df -h
iostat -x 1

重点看:

  • CPU
  • 内存
  • 磁盘 IO
  • 网络

3. 日志监控

tail -f $HADOOP_HOME/logs/hadoop-*-namenode-*.log
tail -f $HADOOP_HOME/logs/hadoop-*-datanode-*.log

四、使用系统服务+告警(生产推荐)

1. systemd 监控

如果 Hadoop 用 systemd 管理:

systemctl status hadoop-namenode
systemctl status hadoop-datanode

2. 简单脚本 + cron 定时检查

示例:

hdfs dfsadmin -report | grep "Dead Datanodes" | awk '{print $3}'

结合邮件或钉钉告警。


五、企业级监控方案(推荐)

1. Prometheus + Grafana

  • 使用 JMX Exporter
  • 监控 HDFS JMX 指标
  • 可视化 NameNode / DataNode 状态

2. Ambari / Cloudera Manager

  • 自动监控 HDFS
  • 自动告警
  • 适合大规模集群

六、常见监控指标(重点关注)

✅ Live DataNode 数量
✅ 剩余存储空间
✅ 副本不足块数
✅ NameNode RPC 延迟
✅ 网络吞吐
✅ GC 时间(NameNode)


如果你愿意,可以告诉我:

  • Hadoop 版本(2.x / 3.x)
  • 是否 HA
  • 单机还是集群
  • 是否已有 Prometheus / Zabbix

我可以给你具体的监控脚本或配置示例。

0 踩