TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • 试读&介绍

  • 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-Monitor剖析

  • Metrics2协议解读

  • Hadoop-SINK剖析

  • Hbase-SINK剖析

  • Kafka-SINK剖析

  • 自定义组件接入监控

  • 其他监控方案

  • GOD-Ambari-Metrics
  • Ambari-Metrics解读【简写AMS】
  • AMS-Collector剖析
JaneTTR
2025-09-02
目录

[主启动类] — 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#Ambari-Metrics#Collector#TimelineService#启动脚本#Java主类#WebApp#REST接口
[主启动类] — HBaseTimeline初始化职责
[监控表] — 基础表结构梳理

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

最近更新
01
[/metrics/metadata] — 元数据查询和使用 GET
09-12
02
[/metrics/metadata] — 请求完整链路解读
09-12
03
[/metrics/metadata] — 缓存数据装载 Phoenix
09-12
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式