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

    • AMS-Collector表结构实战

      • [监控表] — 基础表结构梳理
      • [监控表] — 业务表结构梳理
      • [监控表] — 基础表和业务表关联关系
        • 一、整体概览
        • 二、基础表
        • 三、业务数据表
        • 四、UUID 的实现与验证 —— 探究表间关系纽带
          • 4.1 源码层面
          • 4.2 表结构层面
          • 4.3 Java 端解析 hostId
          • ① 按主机分组 —— 一台主机上的多个指标
          • ② 按指标分组 —— 一个指标跨多台主机
          • ③ 更多典型组合
      • [监控表] — Java代码验证表关系
      • [监控表] — 建表切分策略
      • [监控表] — Master组件和Slave组件判别
      • [监控表] — Uuid 16 位构成全解析
    • AMS-Collector接口实战

    • AMS-Monitor剖析

  • Metrics2协议解读

  • Hadoop-SINK剖析

  • Hbase-SINK剖析

  • Kafka-SINK剖析

  • 自定义组件接入监控

  • 其他监控方案

  • GOD-Ambari-Metrics
  • Ambari-Metrics解读【简写AMS】
  • AMS-Collector表结构实战
JaneTTR
2025-09-09
目录

[监控表] — 基础表和业务表关联关系

# 一、整体概览

AMS 的存储表分为 基础表 和 业务数据表。
二者之间的纽带,就是拼装后的 UUID(16b + 4b = 20b)。

表类别 表名示例 UUID 长度 作用说明
基础表 HOSTED_APPS_METADATA_UUID、METRICS_METADATA_UUID 4b / 16b 存放主机 ID 与指标 ID 的元数据映射
业务表 METRIC_RECORD_UUID、METRIC_AGGREGATE_UUID 等 20b / 16b 承载监控时序数据,依赖拼装的 UUID 唯一标识

提示

核心公式:
业务表 UUID = 指标 UUID (16b) + 主机 UUID (4b) = 20b

# 二、基础表

HOSTED_APPS_METADATA_UUID   # 主机信息(uuid=4b)
METRICS_METADATA_UUID       # 指标信息(uuid=16b)
INSTANCE_HOST_METADATA      # 没数据,可忽略
1
2
3
  • 4b 主机 ID → 唯一标识 host
  • 16b 指标 ID → 唯一标识 metric

这些基础表相当于字典表,为业务数据的 UUID 拼接提供元信息。

# 三、业务数据表

业务表用于存放监控时序数据,按照粒度不同分为:

粒度 表名示例 UUID 长度 说明
Cluster 聚合 METRIC_AGGREGATE_DAILY_UUID
METRIC_AGGREGATE_HOURLY_UUID 等
16b 聚合层数据,不区分主机
Host 明细 METRIC_RECORD_UUID
METRIC_RECORD_DAILY_UUID 等
20b 主机级监控,UUID = 16b+4b

其中 METRIC_TRANSIENT 用于 Collector 内部缓存,避免短时间写入延迟。

# 四、UUID 的实现与验证 —— 探究表间关系纽带

UUID 的拼装与解析,是基础表和业务表之间联系的桥梁。下面从源码、表结构和 Java 层面逐一说明。

# 4.1 源码层面

在源码中,metricsUuid 与 hostUuid 被组合成业务表的 20b 主键:

UUID 拼装逻辑

  • 前 16 字节:指标 ID(来自 METRICS_METADATA_UUID)
  • 后 4 字节:主机 ID(来自 HOSTED_APPS_METADATA_UUID)

通过这种拼接方式,一个指标在不同主机上的监控数据就能被唯一标识。换句话说,16b 与 4b 的合并正是表间关系的核心纽带。

👌 可以的,这一段可以更“丰满”,不仅要写出表结构和 GET_BYTE 的限制,还要回答 为什么会出现这种情况:

  1. Phoenix 基于 HBase 的二进制存储,本身没有字符串的截取函数来处理 BINARY 类型;
  2. UUID 在 AMS 中就是用 二进制存储的,节省空间、加速对比,但代价是查询时只能逐字节;
  3. 这也是 Phoenix 的设计选择 —— 优化写入/存储,而不是查询时的直观性。

我帮你重写并扩展一下 4.2 表结构层面:

# 4.2 表结构层面

通过 !describe 命令,可以直观看到表定义:

!describe METRIC_RECORD_UUID
!describe METRICS_METADATA_UUID
1
2

其中,METRICS_METADATA_UUID 存放了 指标名称 ↔ 应用 ID 的映射; 而 METRIC_RECORD_UUID 的 前 16 字节,正是依赖这些指标元数据来解码。

表结构截图

为什么会这样设计?

  1. 存储上的考虑

    • AMS 中的 UUID 全部以 BINARY 格式保存,而不是 VARCHAR。
    • 这样做能大幅节省存储空间(16b/20b 定长)并提高写入速度(避免字符串解析)。
    • 对于 HBase 这种面向高并发写入的场景,这是更合理的选择。
  2. 查询上的限制

    • Phoenix 的 SQL 层面对 BINARY 类型支持有限,没有像字符串那样的 substring 或 split 函数。
    • 因此在表 Join 时,无法直接“截取” UUID 的前 16 字节来对比,只能用 逐字节比对。
  3. 二进制拼接的副作用

    • 我们的 UUID 实际是由 metaUuid (16b) + hostId (4b) 拼出来的。
    • Phoenix 并不知道这 20b 里面的“前 16b”是指标、“后 4b”是主机,只能把它当成一个纯粹的二进制串。
    • 所以查询时只能靠 GET_BYTE 手工把前 16 个字节一个个拿出来匹配。

测试脚本验证

SELECT m.METRIC_NAME, COUNT(*) AS c
FROM METRIC_RECORD_UUID r
JOIN METRICS_METADATA_UUID m
  ON  GET_BYTE(r.UUID,  1)=GET_BYTE(m.UUID,  1)
 AND GET_BYTE(r.UUID,  2)=GET_BYTE(m.UUID,  2)
 AND GET_BYTE(r.UUID,  3)=GET_BYTE(m.UUID,  3)
 AND GET_BYTE(r.UUID,  4)=GET_BYTE(m.UUID,  4)
 AND GET_BYTE(r.UUID,  5)=GET_BYTE(m.UUID,  5)
 AND GET_BYTE(r.UUID,  6)=GET_BYTE(m.UUID,  6)
 AND GET_BYTE(r.UUID,  7)=GET_BYTE(m.UUID,  7)
 AND GET_BYTE(r.UUID,  8)=GET_BYTE(m.UUID,  8)
 AND GET_BYTE(r.UUID,  9)=GET_BYTE(m.UUID,  9)
 AND GET_BYTE(r.UUID, 10)=GET_BYTE(m.UUID, 10)
 AND GET_BYTE(r.UUID, 11)=GET_BYTE(m.UUID, 11)
 AND GET_BYTE(r.UUID, 12)=GET_BYTE(m.UUID, 12)
 AND GET_BYTE(r.UUID, 13)=GET_BYTE(m.UUID, 13)
 AND GET_BYTE(r.UUID, 14)=GET_BYTE(m.UUID, 14)
 AND GET_BYTE(r.UUID, 15)=GET_BYTE(m.UUID, 15)
 AND GET_BYTE(r.UUID, 16)=GET_BYTE(m.UUID, 16)
GROUP BY m.METRIC_NAME
ORDER BY c DESC
LIMIT 100;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

SQL Join 结果

执行结果表明:只有逐字节比对,才能把 METRIC_RECORD_UUID 中的数据正确关联回 METRICS_METADATA_UUID 中的指标元数据。

直观理解

下图展示了这种匹配的逻辑:

  • 左边是业务表 METRIC_RECORD_UUID 的 UUID(20b);
  • 右边是基础表 METRICS_METADATA_UUID 的 UUID(16b);
  • Phoenix Join 时只能一位一位比对,直到前 16b 全部匹配为止:

匹配逻辑截图

# 4.3 Java 端解析 hostId

Collector 在 Java 端通常不会走复杂的 SQL Join,而是直接解析 UUID 的后 4 字节,快速得到 hostId。
相比 SQL 中冗长的 GET_BYTE 逐位匹配,Java 解析的方式更直观高效,也便于后续做分组与聚合。

Java HostId 解析

我们通过实际运行结果,分别从 按主机分组 和 按指标分组 两个角度来观察 UUID 的效果。

运行结果示例:

metric=dfs.datanode.DataNodeActiveXceiversCount (app=datanode), metaUuid=8C8A97EA31104CD70427BCB95FD50720, hostId=9CDC8F97, count=1198
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.SEQUENCE_metric_checkAndPutTime_mean (app=hbase), metaUuid=8C9E2D277CC4C1EAFCEFF8C908562F20, hostId=6ED2F093, count=1233
metric=dfs.FsVolume.TotalDataFileIos (app=datanode), metaUuid=8CA477CC4A3D7D4F42479F7FE2968784, hostId=2D31224D, count=1211
metric=dfs.FsVolume.TotalDataFileIos (app=datanode), metaUuid=8CA477CC4A3D7D4F42479F7FE2968784, hostId=6ED2F093, count=1203
metric=dfs.FsVolume.TotalDataFileIos (app=datanode), metaUuid=8CA477CC4A3D7D4F42479F7FE2968784, hostId=9CDC8F97, count=1201
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.TASK_metric_deleteBatchTime_mean (app=hbase), metaUuid=8CC6B1BE74960BFE21E4185D67DA05B8, hostId=6ED2F093, count=1233
metric=regionserver.Server.Replay_min (app=ams-hbase), metaUuid=8CFB3174AB9BC6ABFCD6955B52DD91D0, hostId=6ED2F093, count=1163
metric=phoenix.PhoenixIndexer.PostOpenTime_98th_percentile (app=hbase), metaUuid=8D04CFF61638F8067AE2B00F5E785B7F, hostId=6ED2F093, count=1180
metric=regionserver.Server.blockCacheSize (app=hbase), metaUuid=8D089CB0CB2DE45450CEC5C1800DDBCB, hostId=6ED2F093, count=1189
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.CATALOG_metric_incrementTime_25th_percentile (app=hbase), metaUuid=8D39F4C1C42F08A1F4D9047EFEBD04F9, hostId=6ED2F093, count=1233
metric=regionserver.Server.Append_max (app=ams-hbase), metaUuid=8D5B6A674D3DCEBBE338790A79B0CADA, hostId=6ED2F093, count=1163
metric=regionserver.TableLatencies.Namespace_hbase_table_namespace_metric_scanTime_max (app=hbase), metaUuid=8D7FBF47E25AD6D2BC1D8358FEEC71B6, hostId=6ED2F093, count=1233
metric=master.Quotas.QuotaObserverChoreTime_99th_percentile (app=hbase), metaUuid=8D89DBFEC623FB1F1620D15208CD3226, hostId=6ED2F093, count=1188
metric=metricssystem.MetricsSystem.NumAllSinks (app=namenode), metaUuid=8D8DE4AE88EDB3AF6A6FBA38DA95A3D1, hostId=6ED2F093, count=1184
metric=yarn.PartitionQueueMetrics.AggregateVcoreSecondsPreempted (app=resourcemanager), metaUuid=8D955D8AB6C994198ADF34B73624F32B, hostId=6ED2F093, count=1194
metric=dfs.FSNamesystem.CapacityUsedNonDFS (app=namenode), metaUuid=8DAEB959CCD2BE3CA28BF81512F10AC7, hostId=6ED2F093, count=1180
metric=regionserver.RegionServer.RequestSize_75th_percentile (app=hbase), metaUuid=8DCEF9B4897F847BA5D4A20958851D5E, hostId=6ED2F093, count=1182
metric=ugi.UgiMetrics.RenewalFailuresTotal (app=datanode), metaUuid=8DCF5C725EBC0C9319B40737AD2F8911, hostId=2D31224D, count=1212
metric=ugi.UgiMetrics.RenewalFailuresTotal (app=datanode), metaUuid=8DCF5C725EBC0C9319B40737AD2F8911, hostId=6ED2F093, count=1212
metric=ugi.UgiMetrics.RenewalFailuresTotal (app=datanode), metaUuid=8DCF5C725EBC0C9319B40737AD2F8911, hostId=9CDC8F97, count=1214
metric=regionserver.Memory.IncreaseMemStoreSize_98th_percentile (app=hbase), metaUuid=8DD077F512E9C8F48805A2C003B27303, hostId=6ED2F093, count=1180
metric=yarn.QueueMetrics.Queue=root.default.AMResourceLimitVCores (app=resourcemanager), metaUuid=8DDFBC12B1BABF42434881873CA956ED, hostId=6ED2F093, count=1192
metric=phoenix.PhoenixIndexer.PreIndexUpdateFailureTime_95th_percentile (app=hbase), metaUuid=8DEBB338B13CC6FDD820FF4474AF099D, hostId=6ED2F093, count=1180
metric=rpc.rpc.client.NumDroppedConnections (app=namenode), metaUuid=8E156C74A6FE937E8DDB2FE600B3FA20, hostId=6ED2F093, count=1194
metric=jvm.JvmMetrics.ThreadsNew (app=datanode), metaUuid=8E1F69B81159897124FEDBFD01CFCAB8, hostId=2D31224D, count=1211
metric=jvm.JvmMetrics.ThreadsNew (app=datanode), metaUuid=8E1F69B81159897124FEDBFD01CFCAB8, hostId=6ED2F093, count=1204
metric=jvm.JvmMetrics.ThreadsNew (app=datanode), metaUuid=8E1F69B81159897124FEDBFD01CFCAB8, hostId=9CDC8F97, count=1204
metric=master.Master.numActiveHandler (app=hbase), metaUuid=8E21CFCD37DB0D2D50FFBD303FD07A90, hostId=6ED2F093, count=1196
metric=dfs.NNTopUserOpCounts.windowMs=60000.op=mkdirs.TotalCount (app=namenode), metaUuid=8E36FA66764338BDAF654605E1230D22, hostId=6ED2F093, count=117
metric=sdisk_sda2_write_count (app=HOST), metaUuid=8E45326A5DEA52D0637A34C848C4179A, hostId=2D31224D, count=1439
metric=sdisk_sda2_write_count (app=HOST), metaUuid=8E45326A5DEA52D0637A34C848C4179A, hostId=6ED2F093, count=1439
metric=sdisk_sda2_write_count (app=HOST), metaUuid=8E45326A5DEA52D0637A34C848C4179A, hostId=9CDC8F97, count=1439
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.CATALOG_metric_putTime_max (app=hbase), metaUuid=8E54BAF1FBD8DC9A5129C52420C8A8CE, hostId=6ED2F093, count=1233
metric=master.FileSystem.HlogSplitTime_75th_percentile (app=hbase), metaUuid=8E7CB80155BFD5D6F8A608D76F05AAD5, hostId=6ED2F093, count=1189
metric=thrift-one.Thrift.PauseTimeWithoutGc_99.9th_percentile (app=hbase), metaUuid=8E89C49C9537E4BB6B98452848B27AF4, hostId=6ED2F093, count=1197
metric=master.Quotas.SnapshotObserverSizeComputationTime_mean (app=hbase), metaUuid=8E9BBAB1173C348BDEE21697C62F3680, hostId=6ED2F093, count=1188
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.TASK_metric_appendTime_98th_percentile (app=hbase), metaUuid=8EA0348AFA823B4A97B889CF7C8484E5, hostId=6ED2F093, count=1233
metric=dfs.namenode.FilesRenamed (app=namenode), metaUuid=8EA2335848F98698EBDD6842EB520381, hostId=6ED2F093, count=1195
metric=phoenix.PhoenixIndexer.PostPutTime_75th_percentile (app=hbase), metaUuid=8EB422ECF212AF4852CB3526CEDA6A6E, hostId=6ED2F093, count=1180
metric=thrift-one.Thrift.TimeInQueue_max (app=hbase), metaUuid=8EB75D0FC721C1DF1D7990845E5D5B0B, hostId=6ED2F093, count=1197
metric=dfs.namenode.TransactionsBatchedInSync (app=namenode), metaUuid=8EC7390910605EB7F96A90BD7AF418AC, hostId=6ED2F093, count=1195
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.TASK_metric_checkAndPutTime_98th_percentile (app=hbase), metaUuid=8EEA2F5181FD70DA46B5CFDD7F115282, hostId=6ED2F093, count=1233
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.CATALOG_metric_getTime_25th_percentile (app=hbase), metaUuid=8EF9069C6F5E702FB4BC801E8BD10C58, hostId=6ED2F093, count=1233
metric=master.AssignmentManager.RitDuration_median (app=hbase), metaUuid=8F012B0361F7E9F5D1C016CD18269D03, hostId=6ED2F093, count=1186
metric=regionserver.TableLatencies.Namespace_hbase_table_namespace_metric_getTime_max (app=hbase), metaUuid=8F230CD08B98C9F5BACCCC919E08EF37, hostId=6ED2F093, count=1233
metric=master.AssignmentManager.SplitTime_99th_percentile (app=hbase), metaUuid=8F387A4935D1BFD8B70671A03574DA08, hostId=6ED2F093, count=1186
metric=dfs.namenode.CreateFileOps (app=namenode), metaUuid=8F4CB37CAF3D248D1B9E818A3A9A4DB9, hostId=6ED2F093, count=1195
metric=master.AssignmentManager.SplitTime_25th_percentile (app=hbase), metaUuid=8F5FE8D990752BB0FE5838716F8CF2A8, hostId=6ED2F093, count=1186
metric=regionserver.TableLatencies.Namespace_hbase_table_meta_metric_tableWriteQueryPerSecond_mean_rate (app=hbase), metaUuid=8F6026DF55E178E6003A14EB76F5FDE1, hostId=6ED2F093, count=1233
metric=Phoenix,sub=CLIENT.PHOENIX.COUNT_RPC_CALLS (app=hbase), metaUuid=8F67FABD8ED5925001451CE038CC737E, hostId=6ED2F093, count=1181
metric=jvm.JvmMetrics.MemNonHeapCommittedM (app=jobhistoryserver), metaUuid=8F9B3D1E8283A0B97314CCCC0F5E81E6, hostId=9CDC8F97, count=1201
metric=regionserver.Server.Get_median (app=hbase), metaUuid=8F9D64CAB70C7167F94C81F45C62D855, hostId=6ED2F093, count=1189
metric=regionserver.Server.Append_75th_percentile (app=hbase), metaUuid=8FC32CBF667B48B5EDF336EFA3CAD0A7, hostId=6ED2F093, count=1189
metric=regionserver.Replication.source.shippedKBs (app=hbase), metaUuid=8FFFF6592ABA165802547C415FCF0EF2, hostId=6ED2F093, count=1282
metric=dfs.datanode.WriteBlockOpAvgTime (app=datanode), metaUuid=902AE34E673D88EF6058F71C8B807283, hostId=2D31224D, count=1206
metric=dfs.datanode.WriteBlockOpAvgTime (app=datanode), metaUuid=902AE34E673D88EF6058F71C8B807283, hostId=6ED2F093, count=1200
metric=dfs.datanode.WriteBlockOpAvgTime (app=datanode), metaUuid=902AE34E673D88EF6058F71C8B807283, hostId=9CDC8F97, count=1198
metric=master.Quotas.SnapshotObserverSizeComputationTime_99th_percentile (app=hbase), metaUuid=902B2D799CE3A99664F540CD9BD0C166, hostId=6ED2F093, count=1188
metric=regionserver.Memory.UnblockedFlushes_75th_percentile (app=hbase), metaUuid=9045848B27281E7533E6619F37C4073A, hostId=6ED2F093, count=1180
metric=regionserver.TableLatencies.Namespace_hbase_table_namespace_metric_putTime_99th_percentile (app=hbase), metaUuid=9056CA638E1B1C16BA4C63B2DA9FA1D1, hostId=6ED2F093, count=1233
metric=phoenix.PhoenixIndexer.PreIndexUpdateFailureTime_min (app=hbase), metaUuid=907C47967137447E2A7378A9798E5E3B, hostId=6ED2F093, count=1180
metric=regionserver.RegionServer.RequestSize_95th_percentile (app=hbase), metaUuid=90B09D0918D9F253ECEF36D0A13C3EC4, hostId=6ED2F093, count=1182
metric=master.FileSystem.MetaHlogSplitSize_median (app=hbase), metaUuid=90D15E688DABE90DCF48BA352B99B1D5, hostId=6ED2F093, count=1189
metric=rpcdetailed.rpcdetailed.client.DeleteNumOps (app=namenode), metaUuid=910706EE8C42C053FE515374D3111073, hostId=6ED2F093, count=1197
metric=regionserver.RegionServer.authenticationSuccesses (app=hbase), metaUuid=917DF5CB20E7E390DB2C228595C7D70B, hostId=6ED2F093, count=1182
metric=metricssystem.MetricsSystem.Sink_timelineNumOps (app=namenode), metaUuid=9189EA9D6FF8DF2C54E55041A9F5BAAD, hostId=6ED2F093, count=1184
metric=default.StartupProgress.LoadingFsImageElapsedTime (app=namenode), metaUuid=91A71853173028B621AD0AC5D667641E, hostId=6ED2F093, count=1194
metric=thrift-one.Thrift.PauseTimeWithGc_25th_percentile (app=hbase), metaUuid=91B6289FC72894F529D073BA50B561BC, hostId=6ED2F093, count=1197
metric=regionserver.Server.CompactionOutputSize_median (app=hbase), metaUuid=91C34FCAF4C1ECE868FFB9B46515D488, hostId=6ED2F093, count=1189
metric=regionserver.TableLatencies.Namespace_hbase_table_namespace_metric_checkAndDeleteTime_99th_percentile (app=hbase), metaUuid=91C866A2A040465E233C9DF9B1125C37, hostId=6ED2F093, count=1233
metric=dfs.FSNamesystem.NumInServiceLiveDataNodes (app=namenode), metaUuid=91DBACACE69DB70033479CF0D625C2D4, hostId=6ED2F093, count=1180
metric=regionserver.WAL.SyncTime_95th_percentile (app=hbase), metaUuid=91E88EEEB234566CF69986D7ED8A6269, hostId=6ED2F093, count=2435
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.TASK_metric_scanTime_99.9th_percentile (app=hbase), metaUuid=91F64A35CFAEC3CB6EAA3EF9880D3EDB, hostId=6ED2F093, count=1233
metric=regionserver.TableLatencies.Namespace_hbase_table_namespace_metric_appendTime_mean (app=hbase), metaUuid=91F8367D711A164D11AA1F28CAEF91E5, hostId=6ED2F093, count=1233
metric=yarn.PartitionQueueMetrics.Queue=root.default.ActiveApplications (app=resourcemanager), metaUuid=920ED0E8A036792D70F4B75AE8D5CCDB, hostId=6ED2F093, count=1192
metric=jvm.JvmMetrics.ThreadsRunnable (app=hbase), metaUuid=9213810464DDC0D7B4A9205AB3EEC762, hostId=6ED2F093, count=3688
metric=regionserver.Memory.UnblockedFlushes_99th_percentile (app=hbase), metaUuid=92197BC9219F0091BBD4FECAED3AEB1B, hostId=6ED2F093, count=1180
metric=ugi.UgiMetrics.LoginSuccessAvgTime (app=hbase), metaUuid=922D24BF58C4859B5A7FEC87C2B6A0E8, hostId=6ED2F093, count=3579
metric=master.AssignmentManager.MergeTime_25th_percentile (app=hbase), metaUuid=9234FCAC86AADFBCA9A2AE282022DFC9, hostId=6ED2F093, count=1186
metric=sdisk_loop0_write_time (app=HOST), metaUuid=92430B7C874FF94C00480DB5B624482B, hostId=2D31224D, count=1439
metric=sdisk_loop0_write_time (app=HOST), metaUuid=92430B7C874FF94C00480DB5B624482B, hostId=6ED2F093, count=1439
metric=sdisk_loop0_write_time (app=HOST), metaUuid=92430B7C874FF94C00480DB5B624482B, hostId=9CDC8F97, count=1439

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# ① 按主机分组 —— 一台主机上的多个指标

以 hostId=6ED2F093 为例,这台主机同时运行了 HBase RegionServer 和 NameNode 相关组件。
同一个 hostId 下可以找到多个不同的指标:

metric=regionserver.Server.blockCacheSize (app=hbase), metaUuid=8D089CB0..., hostId=6ED2F093
metric=regionserver.Memory.IncreaseMemStoreSize_98th_percentile (app=hbase), metaUuid=8DD077F5..., hostId=6ED2F093
metric=regionserver.TableLatencies.Namespace_default_table_SYSTEM.SEQUENCE_metric_checkAndPutTime_mean (app=hbase), metaUuid=8C9E2D27..., hostId=6ED2F093
metric=dfs.FSNamesystem.CapacityUsedNonDFS (app=namenode), metaUuid=8DAEB959..., hostId=6ED2F093
metric=rpc.rpc.client.NumDroppedConnections (app=namenode), metaUuid=8E156C74..., hostId=6ED2F093
1
2
3
4
5

可以看到:

  • RegionServer 部分关注表延迟、缓存大小、MemStore 内存;
  • NameNode 部分则记录了存储用量、RPC 连接情况;
  • 但它们共享同一个 hostId,说明都属于同一台物理/逻辑主机。

👉 这里体现了 “一个 hostId 对应多个 metaUuid” 的逻辑。

# ② 按指标分组 —— 一个指标跨多台主机

再看另一个场景:同一个指标在多台主机上都有采集。 以 dfs.FsVolume.TotalDataFileIos 为例:

metric=dfs.FsVolume.TotalDataFileIos (app=datanode), metaUuid=8CA477CC..., hostId=2D31224D
metric=dfs.FsVolume.TotalDataFileIos (app=datanode), metaUuid=8CA477CC..., hostId=6ED2F093
metric=dfs.FsVolume.TotalDataFileIos (app=datanode), metaUuid=8CA477CC..., hostId=9CDC8F97
1
2
3

这里:

  • metaUuid 相同 → 说明是同一个指标定义(磁盘 IO 次数);
  • hostId 不同 → 说明该指标在三台 DataNode 主机上都有上报;
  • 最终形成了“一指标,多主机”的监控数据集合。

👉 这里体现了 “一个 metaUuid 对应多个 hostId” 的逻辑。

# ③ 更多典型组合

为了更直观,我们再看几个常见指标:

指标名称 metaUuid 主机分布 (hostId) 说明
jvm.JvmMetrics.ThreadsNew 8E1F69B8... 2D31224D / 6ED2F093 / 9CDC8F97 JVM 新建线程数,三台 DataNode 都有
ugi.UgiMetrics.RenewalFailuresTotal 8DCF5C72... 2D31224D / 6ED2F093 / 9CDC8F97 UGI 认证失败次数,分布在多台主机
regionserver.Server.blockCacheSize 8D089CB0... 6ED2F093 HBase 缓存大小,仅出现在 RegionServer 节点

通过这些案例,我们能更清晰地看到:

  • JVM 和 UGI 类指标,属于通用型 → 所有 DataNode 主机都会上报;
  • RegionServer 缓存指标则只存在于 RegionServer 节点 → 因此只有单个 hostId。
#Ambari#Ambari-Metrics#Collector#TimelineService#HBase#Phoenix#表模型初始化#Java主类
[监控表] — 业务表结构梳理
[监控表] — Java代码验证表关系

← [监控表] — 业务表结构梳理 [监控表] — Java代码验证表关系→

最近更新
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式