1. 利用Hadoop原生工具监控
Hadoop自带一系列命令行工具,可直接在Linux终端使用,快速获取集群资源状态:
hdfs dfsadmin -report:查看HDFS集群整体健康状况,包括DataNode节点列表、存储容量、剩余空间、块数量等信息,是监控HDFS存储资源的核心命令。yarn node -list -all:列出ResourceManager管理的所有NodeManager节点及其状态(如RUNNING、DEAD),帮助确认YARN计算资源的可用性。yarn application -list:查看当前正在运行的YARN应用程序,包括应用ID、名称、用户、队列、资源使用量(内存/CPU)、状态(RUNNING/FINISHED/FAILED)等,用于监控作业资源消耗。jps:快速检查Hadoop关键进程(NameNode、DataNode、ResourceManager、NodeManager)是否正常运行,若进程缺失则需及时排查启动问题。2. 借助Linux系统命令监控
通过Linux自带的系统工具,可监控Hadoop集群所在节点的基础资源使用情况:
top/htop:实时查看节点的CPU使用率、内存占用、进程运行状态(按M键按内存排序,按P键按CPU排序),快速定位资源瓶颈进程。df -h:查看节点磁盘空间使用情况(挂载点、总容量、已用空间、剩余空间),避免HDFS数据目录因磁盘满导致写入失败。du -sh /path/*:统计指定目录(如HDFS数据目录/data/hdfs)的大小,识别占用空间过大的目录。vmstat 1:每秒刷新一次系统资源统计信息,包括CPU使用率、内存交换情况、磁盘I/O读写量、进程阻塞数量等,全面反映系统负载状态。3. 采用第三方监控工具
第三方工具提供更丰富的可视化功能和告警机制,适合大规模集群管理:
4. 查看Hadoop日志文件
Hadoop的日志文件记录了详细的运行信息和错误堆栈,是排查资源使用问题的关键:
$HADOOP_HOME/logs目录下,主要包括NameNode日志(namenode.log)、DataNode日志(datanode.log)、ResourceManager日志(yarn-resourcemanager.log)、NodeManager日志(yarn-nodemanager.log)。tail -f /path/to/logfile命令实时查看日志输出(如tail -f $HADOOP_HOME/logs/namenode.log),或使用grep命令过滤关键信息(如grep "ERROR" /path/to/logfile查找错误日志,grep "WARN" /path/to/logfile查找警告日志)。5. 配置JMX监控
JMX(Java Management Extensions)可用于监控Hadoop组件的内部指标(如JVM内存使用、GC次数、线程池状态):
hadoop-env.sh),添加export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"(以NameNode为例),开启JMX远程监控。