温馨提示×

centos怎么监控hdfs

小樊
36
2026-08-20 05:43:30
栏目: 智能运维

CentOS 上监控 HDFS(Hadoop Distributed File System),可以从 命令行、Web UI、JMX、系统级监控、第三方工具 等多个层面来做。下面按常用方式给你一个完整说明。


一、使用 HDFS 自带命令监控(最基础)

1️⃣ 查看 HDFS 整体状态

hdfs dfsadmin -report

✅ 能看:

  • 各 DataNode 状态
  • 容量、已用、剩余
  • 副本数、块数量

示例:

Live datanodes (3):
Name: 192.168.1.10:9866
Capacity: 500GB
Used: 120GB

2️⃣ 查看文件系统使用情况

hdfs dfs -df -h
hdfs dfs -du -h /

3️⃣ 检查 HDFS 健康状态

hdfs fsck / -files -blocks -locations

常用参数:

hdfs fsck / -count

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

1️⃣ NameNode Web UI

默认端口:

  • Hadoop 2.x:50070
  • Hadoop 3.x:9870

访问:

http://namenode_ip:9870

可查看:

  • HDFS 总容量
  • DataNode 列表
  • 块状态
  • 副本异常

2️⃣ DataNode Web UI

http://datanode_ip:9864

三、通过 JMX 监控(生产环境常用)

1️⃣ NameNode JMX

http://namenode_ip:9870/jmx

关键指标:

  • Hadoop:service=NameNode,name=FSNamesystem
    • CapacityUsed
    • CapacityTotal
    • BlocksTotal
    • UnderReplicatedBlocks

2️⃣ DataNode JMX

http://datanode_ip:9864/jmx

适合接入 Prometheus / Zabbix / Grafana


四、系统级监控(CentOS 层面)

即使 HDFS 正常,系统问题也会导致故障。

1️⃣ 磁盘监控

df -h
iostat -x 1

重点目录:

  • NameNode:dfs.namenode.name.dir
  • DataNode:dfs.datanode.data.dir

2️⃣ 进程监控

jps

常见进程:

  • NameNode
  • DataNode
  • SecondaryNameNode / StandbyNameNode

3️⃣ 端口监听

ss -lntp | grep java

五、使用第三方监控工具(生产推荐)

✅ Prometheus + Grafana(主流)

常用方案:

  • Hadoop Exporter(JMX Exporter)
  • Prometheus 拉取 JMX
  • Grafana 展示

监控内容:

  • HDFS 容量
  • 块数量
  • 副本异常
  • DataNode 存活

✅ Zabbix 监控 HDFS

  • 自定义脚本调用:
    • hdfs dfsadmin -report
    • jmx
  • 触发告警(磁盘、进程、副本)

六、常见告警指标(建议监控)

指标 建议阈值
HDFS 使用率 > 80%
UnderReplicatedBlocks > 0
DataNode 数 少于预期
NameNode 进程 不存在
磁盘使用率 > 85%

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

#!/bin/bash
ALERT=80
USED=$(hdfs dfs -df | awk 'NR==2{print $5}' | tr -d '%')

if [ "$USED" -gt "$ALERT" ]; then
  echo "HDFS usage over $ALERT%"
fi

总结(推荐组合)

日常

  • hdfs dfsadmin -report
  • Web UI

生产环境

  • JMX + Prometheus + Grafana
  • 磁盘 + 进程监控

如果你愿意,我可以:

  • ✅ 帮你 写一套 HDFS 监控脚本
  • ✅ 给你 Prometheus + Grafana 的 HDFS 配置
  • ✅ 按 Hadoop 2.x / 3.x 给你定制方案

你是 测试环境还是生产环境?Hadoop 几.x?

0