如何在Ubuntu上监控Hadoop集群
监控Ubuntu上的Hadoop集群需结合自带工具、第三方系统、命令行操作及自定义脚本,覆盖集群状态、资源使用、异常预警等全维度需求。以下是具体方法:
Hadoop自身提供基础的Web界面和命令行工具,适合快速查看集群状态:
http://<resourcemanager-host>:8088,可监控集群资源分配(CPU、内存)、任务执行进度及历史作业记录。http://<namenode-host>:9870(Hadoop 3.x),用于查看HDFS状态(容量使用、块分布、DataNode连接情况)。jps:查看Hadoop关键组件(NameNode、DataNode、ResourceManager、NodeManager)是否运行;hdfs dfsadmin -report:生成HDFS状态报告(容量、剩余空间、死节点);yarn node -list:列出YARN集群中的NodeManager列表及状态;yarn application -list:查看当前运行的YARN应用程序。第三方工具提供集中化管理、可视化及高级告警功能,适合大规模集群:
check_hadoop.sh)监控Hadoop服务状态(如NameNode是否存活),支持邮件、短信告警。命令行工具适合快速排查问题,获取详细运行信息:
jps命令可列出所有Java进程,确认Hadoop组件是否正常运行(如NameNode进程ID存在则表示服务正常)。hdfs dfsadmin -report命令显示HDFS的容量使用情况、DataNode列表及连接状态(如“Live datanodes: 3”表示3个DataNode正常)。yarn node -list命令列出所有NodeManager及其状态(如“RUNNING”表示正常),yarn node -status <nodemanager-host>可查看节点详细信息。yarn application -list命令列出当前运行的应用程序(如MapReduce作业),yarn application -status <application-id>可查看任务详情(如进度、日志路径)。自定义脚本可实现个性化监控(如特定指标阈值预警),并通过邮件、短信发送告警:
check_hadoop.sh):#!/bin/bash
# 检查NameNode是否存活
if curl -s http://localhost:9870/ | grep -q 'active'; then
echo "NameNode is running"
exit 0
else
echo "NameNode is down"
exit 2
fi
给脚本添加执行权限:chmod +x check_hadoop.sh,然后用cron定时运行(如每5分钟一次):*/5 * * * * /path/to/check_hadoop.sh >> /var/log/hadoop_monitor.log 2>&1。告警是监控的重要环节,能及时通知管理员处理异常:
mail命令或第三方工具(如Sendmail、Postfix)配置邮件通知,在脚本或监控工具中添加告警逻辑(如echo "Hadoop NameNode is down" | mail -s "Hadoop Alert" admin@example.com)。通过以上方法的组合,可实现对Ubuntu上Hadoop集群的全面监控,确保集群稳定运行并及时处理异常。