Linux系统下Hadoop监控方法
jps:查看Hadoop关键进程(NameNode、DataNode、ResourceManager、NodeManager等)是否运行;hdfs dfsadmin -report:生成HDFS详细状态报告(总容量、已用空间、DataNode列表等);yarn node -list:列出YARN集群中所有NodeManager及其状态;yarn application -list:查看当前运行的YARN应用程序;mapred job -list:查看MapReduce作业列表(Hadoop 2.x及以上版本建议使用YARN命令替代)。这些命令适合快速排查节点状态、资源使用等基础问题。http://<namenode-host>:9870(Hadoop 3.x,默认端口)或http://<namenode-host>:50070(Hadoop 2.x),可查看HDFS存储使用、DataNode列表、文件系统操作等;http://<resourcemanager-host>:8088,展示YARN资源分配、运行中应用程序、队列状态等;http://<datanode-host>:9864(Hadoop 3.x)或http://<datanode-host>:50075(Hadoop 2.x),查看单个DataNode的存储和心跳信息。Hadoop组件(如YARN、HDFS)支持通过JMX(Java Management Extensions)暴露内部指标,需在配置文件(如yarn-site.xml、hdfs-site.xml)中开启远程监控:
yarn.nodemanager.jmx-port=9999);Hadoop组件日志集中存储在$HADOOP_HOME/logs目录下(如NameNode日志hadoop-<user>-namenode-<hostname>.log、ResourceManager日志yarn-<user>-resourcemanager-<hostname>.log),通过以下方式监控:
tail -f命令实时追踪日志(如tail -f /opt/hadoop/logs/hadoop-root-namenode-master.log),快速发现异常;grep命令过滤关键字(如grep -i "error" /opt/hadoop/logs/*.log),定位错误信息;通过Shell、Python等编写脚本,定期检查Hadoop状态并发送告警:
curl获取NameNode状态(http://<namenode-host>:9870/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo),解析JSON数据判断是否“healthy”;mail、sendmail或第三方工具(如钉钉机器人、企业微信)发送告警;cron定时任务中(如每5分钟运行一次),实现自动化监控。