温馨提示×

怎么监控CentOS的HDFS

小樊
32
2026-08-05 01:24:49
栏目: 智能运维

CentOS 上监控 HDFS(Hadoop Distributed File System),一般从 Hadoop 自带工具、JMX、系统级监控、第三方监控平台 四个方面入手。下面按 由浅入深、生产可用 的方式给你一个完整方案。


一、使用 Hadoop 自带命令(最基础)

1️⃣ 查看 HDFS 整体状态

hdfs dfsadmin -report

✅ 可看到:

  • Live datanodes
  • Dead datanodes
  • 总容量 / 已用 / 剩余
  • 各 DataNode 详情

2️⃣ 检查 HDFS 健康状态

hdfs fsck / -files -blocks -locations

✅ 检查:

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

3️⃣ 查看 NameNode / DataNode 状态

jps

常见进程:

  • NameNode
  • SecondaryNameNode
  • DataNode
  • JournalNode(HA)

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

1️⃣ NameNode Web UI

http://namenode-host:9870

可查看:

  • HDFS 概要
  • DataNode 列表
  • 副本状态
  • Block 情况

Hadoop 3.x 默认端口是 9870
Hadoop 2.x 通常是 50070


2️⃣ DataNode Web UI

http://datanode-host:9864

三、通过 JMX 监控(生产推荐)

Hadoop 原生支持 JMX(Java Management Extensions),这是最常用、最稳定的方式。

1️⃣ 查看 JMX 端口

Hadoop 默认 JMX 端口:

  • NameNode:通常 9870(HTTP)或 8000+
  • 可通过:
netstat -plnt | grep java

或访问:

http://namenode:9870/jmx

2️⃣ 关键 JMX 指标(重点)

NameNode

指标 说明
Hadoop:service=NameNode,name=FSNamesystemState HDFS 状态
BlocksTotal 总块数
UnderReplicatedBlocks 副本不足块
MissingBlocks 丢失块
CapacityUsed 已用容量

DataNode

指标 说明
Hadoop:service=DataNode,name=DataNodeActivity IO 活动
Remaining 剩余空间

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

1️⃣ 磁盘监控(非常重要)

df -h

HDFS 最容易出问题的是:

  • DataNode 磁盘满
  • 磁盘 IO 高

2️⃣ 磁盘 IO

iostat -x 1

关注:

  • %util
  • await

3️⃣ 内存 & CPU

top
htop

五、使用 Prometheus + Grafana(企业级)

最推荐方案

架构

Hadoop JMX → JMX Exporter → Prometheus → Grafana

1️⃣ 安装 JMX Exporter

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar

2️⃣ 修改 Hadoop 启动参数

hadoop-env.sh 中:

export HADOOP_NAMENODE_OPTS="-javaagent:/path/jmx_prometheus_javaagent.jar=9100:/path/namenode.yml"
export HADOOP_DATANODE_OPTS="-javaagent:/path/jmx_prometheus_javaagent.jar=9101:/path/datanode.yml"

3️⃣ Prometheus 配置

scrape_configs:
  - job_name: "hdfs"
    static_configs:
      - targets:
        - "namenode:9100"
        - "datanode1:9101"

4️⃣ Grafana 仪表盘

  • 官方 / 社区 HDFS Dashboard
  • 可监控:
    • 块数量
    • 副本状态
    • 磁盘使用
    • 节点存活

六、生产环境监控重点(经验总结)

必须监控

  • Missing Blocks > 0
  • Under Replicated Blocks
  • DataNode 掉线
  • NameNode Heap 使用率
  • 磁盘使用率 > 85%

告警建议

  • HDFS 容量 > 90%
  • NameNode 重启
  • DataNode 失联

七、常见故障排查

HDFS 显示 Dead Node

hdfs dfsadmin -report

检查:

  • 网络
  • 防火墙
  • DataNode 进程

块丢失

hdfs fsck / -delete

八、总结(推荐组合)

场景 推荐方式
临时检查 hdfs dfsadmin -report
日常运维 Web UI
自动化监控 JMX
企业级 Prometheus + Grafana

如果你愿意,我可以:

  • ✅ 给你 HDFS Prometheus 告警规则
  • ✅ 帮你 定制 Grafana 仪表盘
  • ✅ 根据你 Hadoop 版本(2.x / 3.x) 精确配置

只要告诉我你的 Hadoop 版本 + 是否 HA

0