当前位置: 首页 > news >正文

Ambari Metrics 是 Apache Ambari 提供的轻量级、嵌入式集群监控子系统,用于收集、聚合、存储和展示 Hadoop 生态组件

Ambari Metrics 是 Apache Ambari 提供的轻量级、嵌入式集群监控子系统,用于收集、聚合、存储和展示 Hadoop 生态组件(如 HDFS、YARN、HBase、Kafka 等)的关键性能指标(Metrics)。它基于时间序列数据库(默认使用 embedded HBase 或可选集成 Phoenix + HBase,新版也支持 Metrics Collector 与 Grafana/InfluxDB 等对接),通过 Metrics Monitor(部署在每个节点)采集本地进程指标(如 JVM、CPU、内存、磁盘 I/O、服务特定指标),并上报至中央 Metrics Collector 服务。

核心组件包括:

  • Metrics Collector:中心化服务,接收、聚合、持久化指标数据(默认后端为 HBase 表METRICS_RECORDMETRICS_AGGREGATE);
  • Metrics Monitor:每节点代理,以轻量级 Python 进程运行,通过 JMX、/proc、命令行等方式采集指标,并通过 HTTP POST 发送至 Collector;
  • Ambari Server 集成:在 Ambari Web UI 中提供“Metrics”仪表盘,支持图表可视化、历史趋势查询、告警配置(需配合 Ambari Alerts 框架);
  • REST API:提供/api/v1/metrics接口,支持按时间范围、服务、主机、指标名等条件查询原始或聚合指标(如avg,max,sum)。

⚠️ 注意:自 Ambari 2.7+ 起,官方推荐逐步迁移到更现代的监控方案(如 Prometheus + Grafana + JMX Exporter),因 Ambari Metrics 存在扩展性瓶颈、HBase 依赖复杂、高并发查询性能受限等问题;部分新版本已将 Metrics Collector 标记为“deprecated”。

# 示例:通过 REST API 查询某 namenode 的 DFSUsed 百分比(过去5分钟)curl-uadmin:admin"http://ambari-server:8080/api/v1/clusters/mycluster/metrics?metricNames=dfs.namenode.DFSUsedPercent&startTime=1717027200000&endTime=1717027500000&host=nn1.example.com"

Ambari Metrics Collector原生并不直接支持 InfluxDB 或 Prometheus 作为后端存储——其架构硬编码依赖 HBase(通过 Phoenix JDBC 或原生 HBase API 写入),官方未提供可插拔的存储适配器机制。因此,“替换为 InfluxDB/Prometheus”并非简单配置切换,而是需采用架构级替代或数据桥接方案。以下是可行路径(按推荐度排序):


✅ 推荐方案:弃用 Metrics Collector,改用标准可观测性栈(现代最佳实践)

  • 停用 Ambari Metrics Collector & Monitor(在 Ambari Web → Services → Metrics → Stop);
  • 部署 JMX Exporter + Prometheus + Grafana
    • 为每个 Hadoop 组件(NameNode、ResourceManager、HBase Master 等)启动jmx_exporter(以 sidecar 或 JVM agent 方式);
    • 配置 Prometheusscrape_configs拉取各组件暴露的/metrics端点;
    • 使用 Grafana 导入社区 Hadoop Dashboard(如 Hadoop JMX Dashboard);
  • ✅ 优势:高性能、高扩展、多维标签、强大 PromQL、生态成熟;
  • ⚠️ 注意:需手动管理 exporter 配置与服务发现(可用 Consul 或 Prometheus Service Discovery + Ambari API 动态生成 targets)。

⚠️ 折中方案:保留 Metrics Collector,但将指标导出到外部时序库(ETL 桥接)

  • 启用 Metrics Collector 的timeline.metrics.export.enabled=true(Ambari 2.7+ 支持);
  • 配置timeline.metrics.export.sink.class为自定义实现类(需 Java 开发),例如:
    • 实现org.apache.hadoop.metrics2.sink.Sink接口,将收到的MetricsRecord转为 InfluxDB Line Protocol 并 HTTP POST 到 InfluxDB/api/v2/write
    • 或对接 Prometheus Pushgateway(不推荐长期使用,因违背拉取模型);
  • 缺点:需编译自定义 JAR、重启 Collector、维护兼容性,且非官方支持路径。

❌ 不可行方案(常见误区)

  • 修改ambari-metrics-collector源码强行替换 HBase Client → 极高维护成本,破坏升级能力;
  • 试图用 HBase → Kafka → Flink → InfluxDB 管道 → 延迟高、复杂度爆炸,无实际运维价值;
  • 依赖已废弃项目(如ambari-metrics-influxdb第三方 fork)→ 无更新、不兼容新版 Ambari/HBase。

🔧 补充:Ambari 3.x 及未来方向

  • Ambari 3.0(尚未 GA)已完全移除 Metrics Collector 模块,监控职责移交至外部系统;
  • 官方文档明确建议:“Use Prometheus, Grafana, and vendor-agnostic exporters for metrics collection”。
# 示例:为 ResourceManager 部署 jmx_exporter(standalone mode)java-Dcom.sun.management.jmxremote\-javaagent:./jmx_exporter/jmx_prometheus_javaagent-1.1.0.jar=8081:./rmmetrics.yaml\-jarhadoop-yarn-server-resourcemanager.jar

(其中rmmetrics.yaml定义 JMX bean 过滤与指标重命名规则)

http://www.jsqmd.com/news/492952/

相关文章:

  • 免费降AI率软件排行:从白嫖到付费怎么选
  • 11个摄像头需要多少带宽? ——自动驾驶视频系统带宽计算(硬件工程师版)
  • 基于VSG控制的MMC并网逆变器仿真模型(Simulink仿真实现)
  • 日报26-005 加分
  • 在资源优化调度场景中,基于多源数据(如地磁/视频/雷达检测、浮动车GPS、手机信令、互联网地图API等)构建关联规则
  • 免费查AI率完全攻略:5种不花钱的检测方法
  • Qwen2.5-VL视觉理解案例:Ollama部署后自动解析芯片封装引脚图
  • 华为VLAN间路由配置(三种方式)
  • uniapp中 不铺满全屏滚动加载更多
  • OpenClaw使用教程 + 获取API + 踩坑
  • 【Java生产级避坑指南】14. 分库分表踩坑实录:全局索引缺失导致全库扫描,3套根治方案+完整代码
  • 论文免费降AI率实操指南:从检测到修改全流程
  • 刷题笔记:力扣第48题-旋转图像
  • FPGA选型指南:如何为LED大屏控制器挑选性价比最高的芯片(附Xilinx/Lattice对比)
  • 全球地形球谐系数模型
  • 白嫖党福利:如何用免费额度搞定降AI率
  • STM32单片机LED灯的闪烁及流水效果
  • 基于Mirage Flow的个性化学习推荐系统构建
  • 每天了解几个MCP SERVER:极速分析神器!亿级数据秒级查询,ClickHouse 让大数据分析飞起
  • 免费降ai的正确姿势:避开这些坑少走弯路
  • 【Java生产级避坑指南】15. 事务隔离级别幻读实锤:PostgreSQL与MySQL差异化防御实战(含完整实验+代码)
  • 第六篇:安全认证与中间件(超详细版)
  • 社区分享 | 从零开始学习 TinyML(三)
  • 知网/维普/万方AI检测怎么免费查?方法都在这了
  • 每天了解几个MCP SERVER:云端媒体库!AI 自动处理图片视频,Cloudinary 让媒体管理更简单
  • 【解刊】IEEE Trans系列新宠:中科院1区TOP期刊,国人作者占比近八成领跑全球!
  • 毕业前一周紧急降AI率:免费+低成本方案全攻略
  • 第七篇:FastAPI集成SQLAlchemy数据库
  • 线性回归代码
  • 告别数据孤岛:基于WebDAV的Zotero与InfiniCLOUD跨平台同步实战