Ubuntu HDFS如何监控配置
导读:Ubuntu 上 HDFS 监控配置指南 一 内置监控入口 Web UI Hadoop 3.x:访问 http://:9870(NameNode Web UI)。 Hadoop 2.x:访问 http://:50070。 YARN 资源...
Ubuntu 上 HDFS 监控配置指南
一 内置监控入口
- Web UI
- Hadoop 3.x:访问 http://:9870(NameNode Web UI)。
- Hadoop 2.x:访问 http://:50070。
- YARN 资源总览:http://:8088(可选,用于关联作业与节点资源)。
- 命令行健康检查
- 集群概览:hdfs dfsadmin -report(DataNode 数量、容量、剩余空间、健康状况)。
- 文件系统一致性:hdfs fsck /(块丢失、副本不足、修复建议)。
- 服务进程存活:执行 jps,应看到 NameNode、DataNode、SecondaryNameNode(2.x)等进程。
二 基于 Metrics2 的指标采集与 Prometheus 集成
- 启用 Hadoop Metrics2
- 编辑 $HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties,为 namenode、datanode 启用 PrometheusSink,示例:
*.sink.prometheus.class=org.apache.hadoop.metrics2.sink.prometheus.PrometheusSink namenode.sink.prometheus.class=org.apache.hadoop.metrics2.sink.prometheus.PrometheusSink datanode.sink.prometheus.class=org.apache.hadoop.metrics2.sink.prometheus.PrometheusSink - 保存后重启 HDFS 相关进程,使指标生效。
- 编辑 $HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties,为 namenode、datanode 启用 PrometheusSink,示例:
- 配置 Prometheus 抓取
- 在 prometheus.yml 增加抓取任务(Hadoop 2.x 常见指标端口为 50070/50075,Hadoop 3.x 常见为 9870/9864;以实际配置为准):
scrape_configs: - job_name: 'hadoop' static_configs: - targets: - '< namenode-host> :9870' # NameNode HTTP(3.x) - '< datanode-host> :9864' # DataNode HTTP(3.x)
- 在 prometheus.yml 增加抓取任务(Hadoop 2.x 常见指标端口为 50070/50075,Hadoop 3.x 常见为 9870/9864;以实际配置为准):
- Grafana 可视化
- 安装并启动 Grafana,添加 Prometheus 数据源(URL 通常为 http://:9090)。
- 导入 Hadoop 社区或自定义 Dashboard,展示 HDFS 容量、副本数、块报告、读写延迟、DataNode 心跳 等关键指标。
三 第三方监控与告警
- 常用方案
- Prometheus + Grafana:适合自建可视化与灵活告警。
- Nagios / Zabbix / Datadog:企业级监控与告警平台,可通过脚本或插件采集 dfsadmin -report、HTTP 探针、日志等指标。
- 快速脚本示例(Nagios/Zabbix 可用)
- 检查可用空间阈值(示例阈值 10%):
#!/usr/bin/env bash THRESHOLD=10 REPORT=$(hdfs dfsadmin -report 2> /dev/null) USAGE_PCT=$(echo "$REPORT" | awk -F: '/Percent Used/ { gsub(/%/,"",$2); print $2; exit} ') if [ -z "$USAGE_PCT" ]; then echo "UNKNOWN: cannot get HDFS usage" exit 3 fi if [ "$USAGE_PCT" -ge "$THRESHOLD" ]; then echo "CRITICAL: HDFS used ${ USAGE_PCT} % > = ${ THRESHOLD} %" exit 2 else echo "OK: HDFS used ${ USAGE_PCT} %" exit 0 fi - 结合 fsck 做块健康巡检,结合 日志轮转与告警 做异常发现。
- 检查可用空间阈值(示例阈值 10%):
四 关键监控项与告警阈值建议
- 容量与副本
- Capacity / Used / Remaining:设置剩余空间阈值(如 < 10% 告警)。
- Under/Over Replicated Blocks:非 0 即告警,关注修复进度。
- 节点与块健康
- Live/Decommissioning/Stale DataNodes:出现 Decommissioning/Stale 及时核查网络、磁盘与进程。
- Missing Blocks / Corrupt Blocks:为 0,否则优先恢复或重建副本。
- 性能与可用性
- NameNode RPC 延迟、队列长度:突增可能预示 GC、锁竞争或磁盘/网络瓶颈。
- DataNode 心跳与磁盘错误:心跳超时或 VolumeFailure 需立刻处理。
- Web UI 可达性:对 9870/50070 做 HTTP 探活,连续失败触发告警。
五 快速排障清单
- 无法打开 9870/50070:检查 NameNode 是否运行(jps)、防火墙/安全组端口放行、绑定地址是否为 0.0.0.0 或正确主机名。
- dfsadmin -report 失败:确认 HDFS 已启动、网络连通、权限与 Kerberos(若启用)配置正确。
- fsck 报告大量缺失/损坏块:优先检查 DataNode 磁盘、副本因子 与网络,再执行修复或补副本。
- Prometheus 抓不到指标:核对 hadoop-metrics2.properties 的 PrometheusSink 配置、进程重启、以及抓取 URL/端口 是否与 Hadoop 版本匹配。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu HDFS如何监控配置
本文地址: https://pptw.com/jishu/771810.html
