Hadoop在Linux上的监控怎样实现
导读:Linux上Hadoop监控的落地方案 一 监控路径总览 原生与命令行:使用 jps 检查进程存活,借助 hdfs dfsadmin -report、hdfs fsck /、yarn node -list -all、yarn applic...
Linux上Hadoop监控的落地方案
一 监控路径总览
- 原生与命令行:使用 jps 检查进程存活,借助 hdfs dfsadmin -report、hdfs fsck /、yarn node -list -all、yarn application -list、mapred job -list 等获取容量、健康、节点与应用状态。
- Web 界面:直接访问组件 UI,包含 NameNode 50070/9870(Hadoop 2.x/3.x)、ResourceManager 8088、DataNode 50075。
- 指标与日志:开启 JMX 远程监控;通过 Hadoop Metrics2 对接外部时序库;实时 tail -f $HADOOP_HOME/logs/ 检索异常。
- 第三方平台:集中式监控与告警可用 Prometheus + Grafana、Apache Ambari,也可用 Ganglia/Zabbix/Nagios 等。
二 快速检查与内置工具
- 进程存活:在各节点执行 jps,确认存在 NameNode/DataNode/ResourceManager/NodeManager 等关键进程。
- HDFS 状态:
- 运行 hdfs dfsadmin -report 查看 DataNode 数量、容量、剩余空间 等;
- 运行 hdfs fsck / 检查文件系统健康与块状态。
- YARN 状态:
- 运行 yarn node -list -all 查看节点列表与资源;
- 运行 yarn application -list 查看应用运行状态。
- Web UI:浏览器访问 NameNode 50070/9870、ResourceManager 8088、DataNode 50075 获取更直观的集群与应用视图。
三 指标采集与可视化
- Metrics2 对接外部时序库:编辑 $HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties,将指标输出到 Graphite/InfluxDB 等;也可按需扩展为 Prometheus Sink(需 Hadoop 版本与依赖支持),统一由 Prometheus 抓取并在 Grafana 面板展示。
- JMX 远程监控:在 Hadoop 配置中开启 JMX,指定 端口 与鉴权;使用 JMX Exporter 或 Prometheus JMX Agent 将指标暴露为 HTTP /metrics,供 Prometheus 拉取。
- 日志与告警:实时 tail -f $HADOOP_HOME/logs/ 观察异常;结合 Prometheus Alertmanager 或 Zabbix/Nagios 配置阈值告警。
四 第三方平台与可视化
- Prometheus + Grafana:以 Prometheus 作为时序库与告警引擎,Grafana 负责可视化与看板,适合构建 HDFS/YARN/节点资源 的统一监控大盘。
- Apache Ambari:提供 集群部署、监控与管理 的 Web 控制台,适合需要“开箱即用”的一体化运维场景。
- 其他方案:传统监控如 Ganglia/Zabbix/Nagios 仍可用于节点与服务可用性、资源与网络监控。
五 关键指标与告警示例
- 建议重点关注的指标与阈值示例:
| 维度 | 关键指标 | 建议阈值示例 | 说明 |
|---|---|---|---|
| HDFS | Capacity/Used/Remaining、MissingBlocks、UnderReplicatedBlocks | MissingBlocks=0、UnderReplicatedBlocks=0、剩余空间低于阈值 | 容量与副本健康度 |
| YARN | Apps Pending/Running、NodeManagers Available、Memory/Vcores Used% | Pending 持续> 0、可用 NodeManager 过少、资源使用率过高 | 队列与资源瓶颈 |
| 节点 | CPU、内存、磁盘 IO、网络 | CPU> 80% 持续 5 分钟、磁盘使用率> 85% | 节点层资源压力 |
| JVM | Heap Memory Used%、GC 次数/时间 | Old Gen 使用率高、Full GC 频繁 | 服务稳定性与延迟 |
- 告警规则示例(PromQL,可按需调整):
- HDFS 健康:
- sum by (cluster)(hdfs_fsck_missing_blocks) > 0
- sum by (cluster)(hdfs_fsck_under_replicated_blocks) > 0
- YARN 排队:
- yarn_queue_pending_apps{ queue=“root”} > 0 for 5m
- 节点资源:
- 1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) > 0.85
- 1 - (node_filesystem_avail_bytes{ mountpoint=“/”} / node_filesystem_size_bytes{ mountpoint=“/”} ) > 0.85
- JVM GC:
- increase(jvm_gc_collection_seconds_sum[5m]) / increase(jvm_gc_collection_seconds_count[5m]) > 1.0(示例阈值,需结合实际 GC 目标调整)
- HDFS 健康:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Hadoop在Linux上的监控怎样实现
本文地址: https://pptw.com/jishu/755738.html
