1. 使用Hadoop自带工具监控
Hadoop自带的基础工具是最直接的监控手段,无需额外安装软件,适合快速获取集群状态。
http://<namenode-host>:9870(Hadoop 3.x)展示集群整体健康状况、DataNode列表、存储容量使用率、Block数量等;ResourceManager通过http://<resourcemanager-host>:8088显示YARN资源分配情况;DataNode通过http://<datanode-host>:9864展示本地存储详情。hdfs dfsadmin -report:生成HDFS集群详细报告,包含DataNode数量、容量使用率、剩余空间、不正常副本数等关键信息;hdfs fsck /path -files -blocks -locations:检查指定路径的文件系统健康状况,验证Block完整性、复制因子是否符合配置、存储位置是否均衡;hdfs balancer -threshold <百分比>:平衡集群数据分布,避免数据倾斜导致的节点负载不均(阈值通常设为10%)。2. 第三方监控工具集成
第三方工具提供更强大的可视化、告警和长期存储能力,适合企业级环境。
hdfs_exporter(Hadoop Exporter)收集HDFS JMX指标(如NameNode的RPC延迟、DataNode的磁盘IO);Grafana则是可视化工具,将Prometheus中的数据转换为直观的仪表盘(如存储容量趋势图、读写吞吐量热力图)。配置步骤:安装Prometheus并添加HDFS抓取任务(指向hdfs_exporter的/metrics接口),安装Grafana后导入Prometheus数据源并配置HDFS监控面板。3. 日志分析与故障排查
HDFS的NameNode和DataNode会生成详细的日志文件(通常位于/var/log/hadoop-hdfs/目录),通过分析日志可发现潜在性能问题:
4. 自定义监控脚本
通过Shell或Python编写自定义脚本,定期检查HDFS状态并发送告警。例如,使用hdfs dfsadmin -report解析DataNode数量,若低于阈值(如低于集群总节点数的80%)则发送邮件通知;或使用df -h检查DataNode本地磁盘空间,若使用率超过90%则触发告警。脚本可通过cron定时执行(如每5分钟运行一次)。