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分鐘運行一次),實現自動化監控。