1. Hadoop自带监控工具
Hadoop提供了基础的命令行工具和Web界面,适合快速查看集群状态:
jps:查看Hadoop关键进程(如NameNode、DataNode、ResourceManager、NodeManager)是否运行;hdfs dfsadmin -report:获取HDFS详细状态(总容量、已用空间、DataNode列表);yarn node -list:列出YARN集群中所有NodeManager及其状态;yarn application -list:查看当前运行的YARN应用程序。http://<namenode-host>:9870(Hadoop 3.x)或50070(2.x),展示HDFS集群状态、文件系统树;http://<resourcemanager-host>:8088,查看YARN资源分配、作业进度;http://<datanode-host>:9864(3.x)或50075(2.x),查看DataNode存储详情。2. 第三方监控工具
针对大规模集群,第三方工具提供更强大的集中化监控与可视化:
3. 日志监控
Hadoop组件日志(位于$HADOOP_HOME/logs目录)是排查问题的关键:
tail -f /var/log/hadoop-hdfs/hadoop-hdfs-namenode.log实时查看NameNode日志;grep "ERROR" /var/log/hadoop-yarn/yarn-yarn-resourcemanager.log过滤ResourceManager的错误日志;4. 系统工具监控
通过Linux系统工具监控Hadoop集群的基础资源使用情况:
top/htop:查看节点CPU、内存占用,识别资源瓶颈;iostat:监控磁盘I/O(如DataNode的读写速率);netstat/ss:查看网络连接状态(如NameNode的RPC端口是否正常);vmstat:分析虚拟内存、进程调度情况。5. 自定义监控脚本
编写Shell/Python脚本定期采集关键指标(如NameNode是否存活、HDFS剩余空间),并通过邮件/钉钉发送告警:
#!/bin/bash
# 检查NameNode进程
if ! jps | grep -q "NameNode"; then
echo "NameNode is down!" | mail -s "Hadoop Alert" admin@example.com
fi
# 检查HDFS剩余空间(阈值<20%告警)
dfs_space=$(hdfs dfsadmin -report | grep "DFS Remaining" | awk '{print $3}' | sed 's/%//')
if [ "$dfs_space" -lt 20 ]; then
echo "HDFS remaining space is less than 20%!" | mail -s "Hadoop Storage Alert" admin@example.com
fi
脚本可设置cron定时任务(如每5分钟运行一次)。