温馨提示×

linux hdfs如何监控

小樊
40
2026-09-19 20:53:02
栏目: 智能运维

在 Linux 环境下监控 HDFS(Hadoop Distributed File System),可以从命令行工具、Web UI、日志、指标系统(JMX/Metrics)、第三方监控几个层面来做。下面按实用程度系统说明。


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

1. hdfs dfsadmin

查看集群整体状态:

hdfs dfsadmin -report

输出内容包括:

  • Live/Dead DataNode 数量
  • 总容量、已用、剩余
  • 副本状态

其他常用:

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

2. hdfs fsck

检查文件系统和块状态:

hdfs fsck / -files -blocks -locations

常见关注点:

  • 缺失块(MISSING)
  • 副本不足(Under-replicated)
  • 损坏块(CORRUPT)

快速检查:

hdfs fsck / -list-corruptfileblocks

3. hdfs dfs

查看目录、文件情况:

hdfs dfs -du -h /
hdfs dfs -ls /

二、Web UI 监控(最直观)

NameNode Web UI

默认端口:

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

地址:

http://namenode-host:9870

可查看:

  • Live/ Dead DataNode
  • 块分布
  • 副本情况
  • 文件系统浏览

ResourceManager(如果用 YARN)

http://rm-host:8088

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

关键日志路径(默认)

$HADOOP_HOME/logs/

重点文件:

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

实时监控:

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

常用关键词:

  • ERROR / WARN
  • Block missing
  • Connection refused
  • GC overhead

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

1. JMX 接口

NameNode 默认暴露:

http://namenode-host:9870/jmx

可获取指标:

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

2. Hadoop Metrics

配置文件:

$HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties

可输出到:

  • Ganglia
  • Graphite
  • Prometheus(通过 exporter)

五、Prometheus + Grafana(现代方案)

架构

HDFS → JMX Exporter → Prometheus → Grafana

步骤简述

  1. 部署 jmx_exporter
  2. 修改 hadoop-env.sh
export HADOOP_NAMENODE_OPTS="-javaagent:/path/jmx_prometheus.jar=7070:config.yaml"
  1. Prometheus 抓取
  2. Grafana 展示(官方有 HDFS Dashboard)

六、进程 & 系统级监控

1. 进程是否存在

jps

应看到:

  • NameNode
  • DataNode
  • ResourceManager(如启用)

2. 系统资源

top
iostat -x 1
df -h

七、第三方监控方案(企业常用)

  • Ambari(HDP)
  • Cloudera Manager(CDH)
  • Zabbix + 自定义脚本
  • Prometheus + Alertmanager

八、常见监控指标建议

指标 说明
MissingBlocks 必须为 0
UnderReplicatedBlocks 持续 > 0 需关注
Dead DataNode 不应出现
CapacityUsed % 建议 < 80%
GC 时间 NameNode 不能过长

如果你愿意,我可以:

  • 给你一套 HDFS 监控脚本
  • 帮你配置 Prometheus + Grafana
  • 针对 生产环境给监控 checklist

你现在是 测试环境还是生产环境?用的是 Hadoop 2 还是 3

0