监控方案总览
在 CentOS 上监控 Hadoop 运行,建议采用“内置检查 + Web UI + 时间序列监控 + 日志告警”的组合:先用 Hadoop 自带命令与 Web 界面做快速体检,再通过 Prometheus + Grafana 或 Zabbix 做持续度量与告警,配合日志分析定位问题,必要时引入 Ambari/Cloudera Manager 做一体化管理。
快速检查与 Web 界面
- 命令行健康检查
- HDFS 状态与容量:hdfs dfsadmin -report
- 安全模式:hdfs dfsadmin -safemode get
- 文件系统健康:hdfs fsck /
- 数据均衡:hdfs balancer(数据分布不均时使用)
- 进程存活:jps(查看 NameNode/DataNode/ResourceManager/NodeManager 等)
- YARN 节点与资源:yarn node -list
- 作业状态:mapred job -list
- Web 界面
- NameNode:50070(Hadoop 2.x)或 9870(Hadoop 3.x)
- ResourceManager:8088
- DataNode:50075
以上命令与端口可快速判断集群是否可用、容量是否充足、节点是否健康、是否有数据/任务异常。
时间序列与可视化监控
- Prometheus + Grafana
- 部署 Prometheus/Grafana(如通过 yum 安装),在 prometheus.yml 配置抓取作业(job)指向 Hadoop 组件或 Exporter 的 /metrics 端点,然后在 Grafana 中创建仪表盘展示关键指标(如 HDFS 容量、DataNode 数、YARN 队列与容器等)。
- Zabbix
- 在所有节点部署 Zabbix Agent,配置与 Zabbix Server 通信;在 Server 端为 HDFS/YARN 建立监控项与触发器(如容量阈值、节点宕机、服务端口不可达等),实现告警通知与可视化。
- 可选平台
- Ganglia(适合大规模 HPC/集群监控)、Ambari/Cloudera Manager(集成监控与管理)、Nagios(插件化告警)、Datadog(商业 SaaS)。
这些工具覆盖从节点资源到 Hadoop 业务指标的持续监控与告警,适合 7×24 稳定运行。
日志分析与告警脚本
- 日志定位
- 重点查看 NameNode/DataNode/ResourceManager/NodeManager 日志(通常位于 $HADOOP_LOG_DIR/),从异常堆栈、GC 时长、块报告超时等线索定位瓶颈与故障。
- 自定义脚本
- 结合 curl 与 hdfs dfsadmin -report 等命令,定期采集指标并做阈值判断,配合邮件/短信/企业微信/钉钉等通道发送告警,实现轻量级自动化监控。
关键指标与告警阈值建议
| 维度 |
关键指标 |
建议阈值或动作 |
| 集群健康 |
Active/Total Nodes、Decommissioned/Stale Nodes |
任一 NameNode/ResourceManager 不可用即严重告警;节点异常数持续增长需排查 |
| HDFS 容量 |
Capacity/Used/Remaining、Missing/Under-Replicated Blocks |
Remaining < 10% 或 Under-Replicated > 0 触发告警;容量接近上限时扩容或清理 |
| YARN 资源 |
Memory Used/Reserved/Vcores Used、Pending Containers、Queue Length |
Pending 持续大于 0 或队列积压明显时扩容/优化作业 |
| 节点资源 |
CPU/内存/磁盘 IO/网络 |
CPU 持续 > 80%、可用内存 < 10%、磁盘 util > 85% 告警 |
| 作业运行 |
Failed/Killed Jobs、平均作业时长 |
失败/被杀作业数突增或平均时长异常上升需定位应用或资源问题 |
| 上述指标与阈值覆盖节点、HDFS、YARN 与任务层面,可据此在 Prometheus/Grafana 或 Zabbix 中配置告警规则。 |
|
|