温馨提示×

linux hdfs怎样监控

小樊
39
2026-10-01 15:05:23
栏目: 智能运维

在 Linux 环境下监控 HDFS(Hadoop Distributed File System),通常有命令行监控、Web UI 监控、JMX/Metrics 监控、第三方工具监控几种方式。下面按常用程度给你系统梳理一下。


一、命令行方式(最基础)

1. hdfs dfsadmin 命令

查看 HDFS 整体状态:

hdfs dfsadmin -report

输出内容包括:

  • Live DataNodes
  • Dead DataNodes
  • 总容量 / 已用容量 / 剩余容量
  • 副本情况

查看安全模式:

hdfs dfsadmin -safemode get

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

hdfs fsck /

常用参数:

hdfs fsck / -files -blocks -locations

可发现:

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

3. 查看 DataNode / NameNode 进程

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

可查看:

  • Cluster Summary
  • Live / Dead Nodes
  • Block 数量
  • 副本状态

DataNode Web UI

http://datanode-host:9864

三、JMX / Metrics 监控(生产推荐)

1. 开启 JMX

在 hadoop-env.sh 中配置:

export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false"

然后可用:

  • jconsole
  • visualvm

2. Hadoop Metrics(重要)

Hadoop 支持输出到:

  • Ganglia
  • Prometheus
  • Graphite

示例(Prometheus):

namenode.metrics.hostname=0.0.0.0
namenode.metrics.port=9200

四、日志监控(排障必看)

日志位置

$HADOOP_HOME/logs/

关键日志:

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

实时监控:

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

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

工具 用途
Prometheus + Grafana 指标可视化
Zabbix 主机 + 进程监控
ELK 日志分析
Ambari / Cloudera Manager 集群统一管理

示例(Zabbix):

  • 监控 NameNode 端口
  • 监控 hdfs dfsadmin -report 输出
  • 监控 DataNode 进程是否存在

六、常见问题监控重点

✅ DataNode 掉线
✅ 副本不足(Under-replicated blocks)
✅ Missing/Corrupt blocks
✅ NameNode 内存使用
✅ 磁盘空间不足


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

  • 用的是 Hadoop 2.x 还是 3.x
  • 是 单机 / 伪分布式 / 集群
  • 想做 简单监控还是生产级监控

我可以给你一份可直接用的监控方案或脚本。

0 踩