温馨提示×

linux hadoop如何监控

小樊
37
2026-09-13 16:04:40
栏目: 智能运维

在 Linux 环境下对 Hadoop 进行监控,通常可以从 系统层、Hadoop 自身组件、第三方工具 三个层面来做。下面给你一个比较实用、可落地的方案。


一、Hadoop 自带监控(最基础)

1. Web UI 监控(默认就有)

Hadoop 各组件自带 Web 页面:

组件 默认端口 地址示例
HDFS NameNode 9870 http://namenode:9870
YARN ResourceManager 8088 http://rm:8088
MapReduce JobHistory 19888 http://jobhistory:19888
DataNode 9864 http://datanode:9864

可以查看:

  • HDFS 容量、块状态
  • Node 健康状态
  • 任务运行状态

2. Hadoop 自带命令

# HDFS 状态
hdfs dfsadmin -report

# 查看安全模式
hdfs dfsadmin -safemode get

# YARN 节点
yarn node -list

# 正在运行的任务
yarn application -list

3. JMX 监控(非常重要)

Hadoop 暴露了 JMX 指标:

http://namenode:9870/jmx
http://rm:8088/jmx

常用指标:

  • HeapMemoryUsage
  • BlocksTotal
  • DeadNodes
  • NumActiveNMs

二、Linux 系统层监控(必须做)

1. 基础命令

top
htop
free -h
df -h
iostat -x 1
netstat -tnlp

2. 日志监控

Hadoop 日志位置(默认):

$HADOOP_HOME/logs/

重点看:

  • NameNode / ResourceManager
  • 各节点的 userlogs
tail -f hadoop-*-namenode-*.log
grep ERROR hadoop-*.log

三、常用第三方监控方案(生产推荐)

方案 1:Prometheus + Grafana(最流行)

架构:

Hadoop JMX → JMX Exporter → Prometheus → Grafana

步骤简版:

  1. 下载 jmx_exporter
  2. 修改 hadoop-env.sh
export HADOOP_NAMENODE_OPTS="-javaagent:/path/jmx_prometheus.jar=9103:/path/namenode.yml"
  1. Prometheus 抓取端口
  2. Grafana 导入 Hadoop Dashboard

✅ 优点:实时、图形化、可告警


方案 2:Ambari(适合 Hortonworks / HDP)

  • 一键安装
  • 自带 Hadoop 监控
  • 界面友好

适合:

  • 集群规模大
  • 不想自己搭监控

方案 3:Zabbix(传统企业)

  • 监控 Linux + Hadoop 进程
  • 可写自定义脚本采集 JMX

四、告警建议(非常重要)

至少监控以下项:

  • NameNode 是否存活
  • DataNode 掉线数量
  • HDFS 使用率 > 85%
  • YARN 容器失败率
  • Java 堆内存使用率
  • 磁盘 IO 异常

五、新手推荐组合

✅ 入门

  • Web UI + 命令行

✅ 生产

  • Prometheus + Grafana
  • Linux 基础监控
  • 日志集中(ELK / Loki)

如果你愿意,我可以:

  • 给你一套 Prometheus + Hadoop 完整配置
  • 或针对 HDFS / YARN 单独监控方案
  • 或写一份 shell 监控脚本

你现在是 学习环境还是生产集群?

0 踩