TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • Ambari 深度专题

  • Bigtop 方法论

  • 自定义集成

  • Ambari Server 与 Web

  • Ambari Metrics

    • 试读&介绍

    • Ambari-Metrics解读【简写AMS】

      • 源码下载及环境初始化
      • 项目目录及模块解读
      • AMS-Collector剖析

        • Ambari启动视角剖析执行逻辑
        • 启动脚本链接Python&Java
        • [主启动类] — 执行逻辑梳理
        • [主启动类] — AMSApplication初始化职责
        • [主启动类] — HBaseTimeline初始化职责
        • [主启动类] — AMSApplication的Web启动
          • 一、上节回忆(init 完成了初始化)
          • 二、Web 启动入口(模板方法)
            • 1、调用关系
            • 2、核心方法(精简版)
            • 3、关键点
          • 三、AMSWebApp(容器与资源装配)
            • 1、角色与位置
            • 2、注册流程(片段)
            • 3、要点
      • AMS-Collector表结构实战

      • AMS-Collector-元数据-接口实战

      • AMS-Collector-指标查询-接口实战

      • AMS-Collector-普通指标写入-接口实战

      • AMS-Collector-聚合指标写入-接口实战

  • Ambari Plus 思考

  • Redis集成实战

  • 通用代码模板

  • 各组件代码

  • 技术专题
  • Ambari Metrics
  • Ambari-Metrics解读【简写AMS】
  • AMS-Collector剖析
JaneTTR
2025-09-02
目录
一、上节回忆(init 完成了初始化)
二、Web 启动入口(模板方法)
1、调用关系
2、核心方法(精简版)
3、关键点
三、AMSWebApp(容器与资源装配)
1、角色与位置
2、注册流程(片段)
3、要点

[主启动类] — AMSApplication的Web启动

# 一、上节回忆(init 完成了初始化)

提示

  • AMSApplicationServer:加载 hbase-site.xml、ams-site.xml 等配置;
  • HBaseTimelineMetricsService:初始化 Metadata/Metric Schema/TTL/聚合器/HA/Watcher;
  • 现在进入 start():拉起 Web 容器与 API。

# 二、Web 启动入口(模板方法)

# 1、调用关系

  • AbstractService.start → 子类实现 startWebApp()

start 调用栈定位

# 2、核心方法(精简版)

protected void startWebApp() {
  String addr = metricConfiguration.getWebappAddress();
  Configuration conf = metricConfiguration.getMetricsConf();
  conf.set(HTTP_MAX_THREADS_KEY,
    String.valueOf(metricConfiguration.getTimelineMetricsServiceHandlerThreadCount()));
  HttpConfig.Policy policy = HttpConfig.Policy.valueOf(
    conf.get(TimelineMetricConfiguration.TIMELINE_SERVICE_HTTP_POLICY, "HTTP_ONLY"));
  webApp = WebApps.$for("timeline", null, null, "ws")
           .withHttpPolicy(conf, policy)
           .at(addr)
           .start(new AMSWebApp(timelineMetricStore));
}
1
2
3
4
5
6
7
8
9
10
11
12

# 3、关键点

  • 绑定地址:getWebappAddress()(常见 host:6188)
  • 线程池:timeline.metrics.service.handler.thread.count → HTTP_MAX_THREADS_KEY
  • 协议策略:timeline.metrics.service.http.policy → HTTP_ONLY / HTTPS_ONLY
  • 启动链:WebApps.$for(...).start(new AMSWebApp(...))

常见坑

  • 端口被占用;
  • HTTP/HTTPS 策略与证书不匹配;
  • 线程数设置过小导致排队,过大导致 CPU 抢占。

# 三、AMSWebApp(容器与资源装配)

# 1、角色与位置

  • 角色:负责把 TimelineMetricStore 注入 Web 层、注册 REST 资源
  • 位置:ambari-metrics-timelineservice/.../webapp/AMSWebApp.java

AMSWebApp 入口

# 2、注册流程(片段)

AMSWebApp 注册流程

# 3、要点

  • 容器通常为 Jetty(由 Hadoop WebApps 打包启动)
  • 资源类由 Guice 注入,TimelineMetricStore 贯穿读写

下一节预告

下节我们给大家详讲解控制器 API /ws/v1/timline/metrics 。

#Ambari-Metrics#源码解析#Ambari
[主启动类] — HBaseTimeline初始化职责
[监控表] — 基础表结构梳理

← [主启动类] — HBaseTimeline初始化职责 [监控表] — 基础表结构梳理→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式