温馨提示×

linux hdfs如何监控运行

小樊
36
2026-09-10 13:00:22
栏目: 智能运维

在 Linux 环境下监控 HDFS(Hadoop Distributed File System) 的运行状态,通常可以从 命令行工具、Web UI、日志、系统指标、第三方监控 几个层面来做。下面按“由浅入深”的方式说明。


一、最常用:HDFS 自带命令监控

1. 查看 HDFS 整体状态

hdfs dfsadmin -report

输出内容包括:

  • Live / Dead DataNode 数量
  • 总容量、已用容量、剩余容量
  • 各 DataNode 的磁盘使用情况

2. 查看文件系统使用情况

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

3. 检查 NameNode 状态

hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2

(适用于 HA 模式)

4. 检查安全模式

hdfs dfsadmin -safemode get

二、Web UI 监控(最直观)

NameNode Web UI

  • 默认端口:9870(Hadoop 3.x)
  • Hadoop 2.x 默认:50070

访问:

http://namenode-host:9870

可以看到:

  • DataNode 列表
  • Block 状态
  • 副本缺失
  • 文件数、块数
  • 集群负载

YARN(如用到)

http://resourcemanager:8088

三、日志监控(排查问题必备)

关键日志路径(默认)

$HADOOP_HOME/logs/

常见日志:

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

实时查看:

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

重点关注:

  • ERROR / WARN
  • Block 丢失
  • RPC 超时
  • 磁盘失败

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

1. 进程是否存活

jps

应看到:

  • NameNode
  • DataNode
  • ResourceManager(如启用)

2. 磁盘监控(HDFS 很依赖磁盘)

df -h
iostat -x 1

3. 网络监控

netstat -tnlp | grep 9870
iftop

五、自动化 / 生产级监控(推荐)

1. 使用 Prometheus + Grafana(主流方案)

  • 使用 JMX Exporter
  • 采集 HDFS JMX 指标
  • Grafana 展示:
    • 容量趋势
    • Block 数量
    • RPC 延迟
    • DataNode 存活

2. 使用 Ambari / Cloudera Manager

  • 自动告警
  • 一键运维
  • 适合企业集群

3. 简单脚本告警(示例)

hdfs dfsadmin -report | grep "Dead datanodes" | grep -v "0" && \
echo "HDFS DataNode 异常" | mail -s "HDFS Alert" admin@xxx.com

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

指标 说明
Live DataNodes 存活节点数
Capacity Used % 容量使用率
Under Replicated Blocks 副本不足
Missing Blocks 丢失块(严重)
RPC Queue Time NameNode 压力
GC Time JVM 健康

七、总结建议

  • 日常hdfs dfsadmin -report + Web UI
  • 排错:日志 + jps
  • 生产:Prometheus + 告警
  • 红线指标:Missing Blocks / Dead DataNode

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

  • Hadoop 版本(2.x / 3.x)
  • 是否 HA
  • 是否生产环境

我可以给你一套可直接用的监控脚本或 Prometheus 配置

0