项目目录及模块解读
# 一、根目录与版本信息
在 Ambari-Metrics 的根目录中,我们可以看到一个核心文件 pom.xml
:
<version>3.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>ambari-metrics-common</module>
<module>ambari-metrics-hadoop-sink</module>
<module>ambari-metrics-flume-sink</module>
<module>ambari-metrics-kafka-sink</module>
<module>ambari-metrics-storm-sink</module>
<module>ambari-metrics-timelineservice</module>
<module>ambari-metrics-host-monitoring</module>
<module>ambari-metrics-grafana</module>
<module>ambari-metrics-host-aggregator</module>
<module>ambari-metrics-assembly</module>
</modules>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
版本说明
当前源码版本为 3.1.0-SNAPSHOT,该版本和3.0.0没啥区别。我们选择的分支只是做了guava升级。
# 二、模块分类与作用
# 1. 各类 Sink 模块
<module>ambari-metrics-hadoop-sink</module>
<module>ambari-metrics-flume-sink</module>
<module>ambari-metrics-kafka-sink</module>
<module>ambari-metrics-storm-sink</module>
1
2
3
4
5
6
2
3
4
5
6
功能定位 这些模块是面向不同大数据组件的 监控数据写出端。最终都会被打包成 Jar,供 Ambari 管理的各类组件(如 Hadoop、Kafka)加载。
验证方法
以 Hadoop Sink 为例,安装完 HDFS 后,可以通过以下命令验证是否成功加载:
# 1. 查看进程
ps -ef | grep datanode
# 2. 检查是否加载 sink Jar
lsof -p <进程号> | grep ambari-metrics-hadoop-sink
1
2
3
4
5
2
3
4
5
📸 对应实操截图:
# 2. TimelineService 核心模块
<module>ambari-metrics-timelineservice</module>
1
2
3
2
3
功能定位
这是整个 Ambari-Metrics 的核心服务,通常称为 Collector。
- 数据收集:接收来自各类 Sink 与 Host Monitoring 的指标上报
- 数据存储:将数据落盘至 HBase 作为时序数据库
- API 提供:对外暴露 REST API/WS 接口,支持查询和聚合
# 3. Host Monitoring
<module>ambari-metrics-host-monitoring</module>
1
2
3
2
3
功能定位
运行在每台节点上的 Agent 模块,负责采集主机级别的系统监控数据,例如:
- CPU 使用率
- 内存/磁盘 IO
- 网络流量
然后统一上报至 TimelineService。
# 4. Grafana 集成
<module>ambari-metrics-grafana</module>
1
2
3
2
3
功能定位
存放与 Grafana 相关的插件和面板定义。 借助此模块,可以在 Grafana 界面中直观展示 Ambari-Metrics 收集到的数据。
# 5. Assembly 模块打包核心
<module>ambari-metrics-assembly</module>
1
2
3
2
3
功能定位
负责最终的 打包与分发,将前面所有模块编译成果进行整合,生成可用于安装的 RPM/DEB 包。
- 使用 Maven Assembly/插件进行归档
- 在 Apache 生态中,这类模块几乎是“发布版”的标配
- 01
- [/metrics/metadata] — 元数据查询和使用 GET09-12
- 02
- [/metrics/metadata] — 请求完整链路解读09-12
- 03
- [/metrics/metadata] — 缓存数据装载 Phoenix09-12