监控 Debian 上的 Hadoop 集群,通常从 系统层、Hadoop 组件层、集群服务层 三个层面来做。下面给你一套实用、可落地的监控方案,从简单到企业级。
在 Debian 上运行 Hadoop,通常需要监控:
Hadoop 节点
↓ (JMX Exporter)
Prometheus
↓
Grafana
Hadoop 原生支持 JMX,这是监控的基础。
在 hadoop-env.sh 中增加:
export HADOOP_OPTS="$HADOOP_OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9876 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false"
每个角色(NN / DN / RM / NM)建议不同端口
使用 JMX Exporter(Prometheus 官方):
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
配置示例 metrics.yaml:
hostPort: localhost:9876
ssl: false
lowercaseOutputName: true
修改 Hadoop 启动参数:
export HADOOP_OPTS="$HADOOP_OPTS \
-javaagent:/opt/jmx_prometheus_javaagent.jar=9100:/opt/metrics.yaml"
访问:
http://debian-node:9100/metrics
scrape_configs:
- job_name: 'hadoop'
static_configs:
- targets:
- node1:9100
- node2:9100
- node3:9100
✅ 这是目前最推荐方案
| 服务 | 地址 |
|---|---|
| NameNode | http://nn:9870 |
| ResourceManager | http://rm:8088 |
| DataNode | http://dn:9864 |
能看:
❌ 不适合长期监控
✅ 适合排错
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
实时、轻量,但不适合大规模
HDFS CapacityHDFS Used %Under-replicated blocksMissing blocksDataNode LiveActive NodesApps Running / FailedContainersQueue usage至少一个:
可用:
Prometheus + Grafana + JMX Exporter
Hadoop Web UI + Netdata
Zabbix + Hadoop JMX
你可以直接告诉我:
我可以:
✅ 给你 完整配置文件
✅ 定制 Grafana 仪表盘
✅ 写 HDFS / YARN 告警规则