Hadoop提供了内置的Web界面和命令行工具,适合快速查看集群基础状态:
http://<namenode-host>:9870(Hadoop 3.x),可查看HDFS集群状态、数据节点列表、存储容量及使用率等。http://<resourcemanager-host>:8088,可监控YARN资源分配情况、正在运行的应用程序(如MapReduce、Spark)、节点状态等。jps:查看Hadoop关键进程(如NameNode、DataNode、ResourceManager、NodeManager)是否运行。hdfs dfsadmin -report:生成HDFS状态报告,包含数据节点数量、存储容量、剩余空间、块信息等。yarn node -list:列出YARN集群中的所有节点及状态(如RUNNING、DEAD)。yarn application -list:查看当前正在运行的YARN应用程序,包括应用ID、名称、用户、状态(如RUNNING、FINISHED)。针对大规模集群,第三方工具提供更全面的监控、告警及可视化功能:
$HADOOP_HOME/logs目录下(如NameNode日志为hadoop-<user>-namenode-<hostname>.log),通过tail -f命令实时查看日志,或使用grep、awk等工具分析错误信息(如DataNode连接失败、任务卡顿)。hdfs dfsadmin -report的输出),结合邮件、短信或即时通讯工具(如企业微信)发送告警。例如,当HDFS剩余空间低于20%时,自动发送邮件通知管理员。使用Linux系统工具监控Hadoop节点的基础资源使用情况,辅助定位性能瓶颈:
top/htop:查看系统CPU、内存使用率及进程占用情况(如ResourceManager进程的内存消耗)。iostat:监控磁盘IO性能(如DataNode节点的磁盘读写速率、IOPS)。vmstat:查看系统虚拟内存、进程、CPU活动等统计信息(如页面交换次数过多可能导致性能下降)。netstat/ss:检查网络连接状态(如NameNode与DataNode之间的Socket连接是否正常)。启用Hadoop组件的JMX(Java Management Extensions),可收集更详细的性能指标(如GC次数、线程池状态、请求延迟):
hadoop-env.sh中配置HADOOP_JMX_BASE环境变量,开启JMX远程访问(如export HADOOP_JMX_BASE="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false")。