温馨提示×

Linux系统里Hadoop的监控怎么做

小樊
41
2025-10-25 01:14:32
栏目: 智能运维

1. Hadoop自带监控工具
Hadoop提供了基础的命令行工具和Web界面,适合快速查看集群状态:

  • 命令行工具
    • jps:查看Hadoop关键进程(如NameNode、DataNode、ResourceManager、NodeManager)是否运行;
    • hdfs dfsadmin -report:获取HDFS详细状态(总容量、已用空间、DataNode列表);
    • yarn node -list:列出YARN集群中所有NodeManager及其状态;
    • yarn application -list:查看当前运行的YARN应用程序。
  • Web界面
    • NameNode:http://<namenode-host>:9870(Hadoop 3.x)或50070(2.x),展示HDFS集群状态、文件系统树;
    • ResourceManager:http://<resourcemanager-host>:8088,查看YARN资源分配、作业进度;
    • DataNode:http://<datanode-host>:9864(3.x)或50075(2.x),查看DataNode存储详情。

2. 第三方监控工具
针对大规模集群,第三方工具提供更强大的集中化监控与可视化:

  • Apache Ambari:基于Web的管理平台,支持Hadoop集群部署、监控、告警(如CPU、内存、磁盘使用率),兼容Hive、HBase等组件。
  • Prometheus + Grafana:Prometheus收集Hadoop metrics(通过JMX Exporter或Hadoop Exporter),Grafana可视化数据(如HDFS存储趋势、YARN资源占用),支持自定义告警规则。
  • Ganglia:分布式监控系统,适合高性能计算环境,监控集群节点的CPU、内存、网络流量等指标,支持历史数据查询。
  • Zabbix:企业级监控解决方案,支持Hadoop集群节点状态、服务可用性监控,提供邮件/短信告警功能。

3. 日志监控
Hadoop组件日志(位于$HADOOP_HOME/logs目录)是排查问题的关键:

  • 使用tail -f /var/log/hadoop-hdfs/hadoop-hdfs-namenode.log实时查看NameNode日志;
  • grep "ERROR" /var/log/hadoop-yarn/yarn-yarn-resourcemanager.log过滤ResourceManager的错误日志;
  • 结合ELK Stack(Elasticsearch+Logstash+Kibana)实现日志集中存储、检索与可视化。

4. 系统工具监控
通过Linux系统工具监控Hadoop集群的基础资源使用情况:

  • top/htop:查看节点CPU、内存占用,识别资源瓶颈;
  • iostat:监控磁盘I/O(如DataNode的读写速率);
  • netstat/ss:查看网络连接状态(如NameNode的RPC端口是否正常);
  • vmstat:分析虚拟内存、进程调度情况。

5. 自定义监控脚本
编写Shell/Python脚本定期采集关键指标(如NameNode是否存活、HDFS剩余空间),并通过邮件/钉钉发送告警:

#!/bin/bash
# 检查NameNode进程
if ! jps | grep -q "NameNode"; then
  echo "NameNode is down!" | mail -s "Hadoop Alert" admin@example.com
fi
# 检查HDFS剩余空间(阈值<20%告警)
dfs_space=$(hdfs dfsadmin -report | grep "DFS Remaining" | awk '{print $3}' | sed 's/%//')
if [ "$dfs_space" -lt 20 ]; then
  echo "HDFS remaining space is less than 20%!" | mail -s "Hadoop Storage Alert" admin@example.com
fi

脚本可设置cron定时任务(如每5分钟运行一次)。

0