Ubuntu上HDFS监控方法
Web界面监控
http://<namenode-ip>:50070访问,可查看HDFS整体状态(如命名空间信息、数据块分布、DataNode连接情况)、存储容量使用率及文件系统操作日志。http://<resourcemanager-ip>:8088访问,用于监控YARN集群资源分配(CPU、内存)、正在运行的应用程序(如MapReduce、Spark作业)及历史作业记录。Shell命令监控
hdfs dfsadmin -report命令,获取HDFS集群的详细报告(包括NameNode/Datanode状态、数据块数量、副本因子一致性、各节点存储容量及剩余空间)。hdfs dfs -df -h /查看根目录磁盘使用情况(人类可读格式),hdfs dfs -count -q /统计目录下的文件/目录数量及配额使用情况,hdfs dfs -du -s -h /查看指定路径的总存储占用。jps命令查看Hadoop相关进程(NameNode、DataNode、ResourceManager、NodeManager)是否正常运行,若进程缺失则需排查启动脚本或日志。hadoop fsck / -files -blocks -locations命令,检查HDFS文件系统的完整性(识别损坏文件、丢失数据块及块副本位置),确保数据可靠性。Apache Ambari
提供集中式Web管理界面,支持HDFS及其他Hadoop组件的安装、配置、监控及告警。通过Ambari Dashboard可实时查看集群资源利用率、组件健康状态,并自定义监控指标阈值(如CPU使用率超过80%触发告警)。
Ganglia + Grafana
Prometheus + Grafana
Zabbix
企业级开源监控解决方案,支持HDFS集群的全面监控(包括节点存活状态、磁盘空间、CPU负载、网络流量)。通过Zabbix Agent部署在每个节点,采集指标并发送至Zabbix Server,可实现自动告警(如磁盘空间不足时触发扩容提醒)及自动化运维(如重启失败的Hadoop进程)。
可根据需求编写Shell、Python脚本,定期采集HDFS指标并输出到日志文件或监控系统。例如:
hdfs dfsadmin -report解析DataNode数量及状态,判断集群规模是否符合预期;hdfs dfs -du -s /user/data获取指定目录的存储占用,当超过阈值(如1TB)时发送告警邮件;cron定时任务(如每5分钟运行一次脚本),实现指标的周期性采集与监控。hadoop-env.sh配置文件,添加-Dcom.sun.management.jmxremote参数,开启JMX远程监控,允许Prometheus等工具采集JMX指标。hdfs_namenode_heap_usage > 0.8表示NameNode堆内存使用率超过80%),关联通知渠道(邮件、Slack、短信),当指标异常时及时通知运维人员。