Linux中Hadoop如何进行集群监控
小樊
39
2025-12-02 19:10:45
Linux下Hadoop集群监控实践
一 快速巡检与命令行监控
- 进程存活检查:在每台节点执行jps,确认关键进程是否存在,如NameNode、DataNode、ResourceManager、NodeManager(必要时含SecondaryNameNode)。
- HDFS整体健康与容量:执行hdfs dfsadmin -report,关注总容量、已用、剩余、DataNode数量与状态。
- HDFS文件系统一致性:执行hdfs fsck /,检查损坏文件/块与副本健康。
- YARN节点与资源:执行yarn node -list -all查看节点状态;用yarn application -list -appStates ALL查看应用状态;需要定位问题时用**yarn logs -applicationId <app_id>**拉取日志。
- 快速验证数据可用性:执行hdfs dfs -ls / 与hdfs dfs -df -h检查根目录与容量。
- 实时资源与系统指标:在节点上用top/htop、vmstat、iostat、df -h观察CPU、内存、磁盘IO、磁盘空间。
以上命令适合作为日常巡检与问题初判的“第一响应”。
二 Web UI与可视化监控
- 组件默认Web端口与用途如下(注意Hadoop 3.x与2.x端口差异):
| 组件 |
默认端口 |
用途 |
| NameNode |
50070(2.x)/ 9870(3.x) |
HDFS总览、节点列表、存储与块信息 |
| ResourceManager |
8088 |
YARN集群、队列、应用与节点资源 |
| DataNode |
50075(2.x)/ 50010(3.x) |
单节点数据块、传输与存储详情 |
- 访问方式:在浏览器打开http://<主机名或IP>:<端口>,如http://:9870与http://:8088。
- 可视化方案:
- Prometheus + Grafana:通过JMX Exporter/自定义Exporter采集Hadoop指标,Grafana做面板展示与告警。
- Ganglia、Zabbix、Nagios:用于节点资源与健康的集中监控与阈值告警。
- Apache Ambari / Cloudera Manager:提供集群部署、监控、告警与生命周期管理的一体化平台。
这些方式可覆盖从组件UI到统一监控平台的多层次可视化需求。
三 日志与JMX深度监控
- 日志集中与检索:Hadoop日志默认位于**$HADOOP_HOME/logs**,可用tail -f实时查看,或用grep/awk检索异常;大规模环境建议接入ELK(Elasticsearch + Logstash + Kibana)做集中化日志分析与可视化。
- JMX远程监控:Hadoop(含YARN)支持JMX,可在配置中开启远程JMX并设定端口与安全策略,结合JMX Exporter将指标暴露给Prometheus,实现对JVM、GC、队列与资源等细粒度指标的采集与告警。
日志与JMX结合,既便于问题定位,也便于容量与性能趋势分析。
四 告警与故障排查联动
- 告警通道:在Prometheus/Grafana或Zabbix/Nagios上配置阈值告警(如HDFS可用空间不足、DataNode失联、YARN应用失败),并通过邮件/企业微信/钉钉/短信通知。
- 连通性与端口:用ping、traceroute排查节点网络;确认防火墙/安全组已放行关键端口(如8088、50070/9870、50075/50010等)。
- 配置与变量:核对core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml关键配置,检查HADOOP_HOME、PATH等环境变量。
- 数据倾斜与容量:当容量或负载不均时,使用hdfs balancer均衡数据分布,避免热点与性能劣化。
- 应急与复盘:结合日志、指标与告警进行根因分析,形成自动化巡检脚本与容量规划,持续优化阈值与告警策略。
上述流程可在发现异常时快速闭环,降低MTTR。