Ambari-Metrics-Ubuntu下源码编译指南New
# 效果预览
启动后效果
集群监控数据已正常采集并展示:
安装日志确认
日志显示在 Ubuntu 系统下执行安装与启动:
Monitor 启动成功
Collector 启动成功
# 一、环境准备
建议在干净的 Ubuntu 22.04 上构建,确保以下依赖可用:
环境组件 | 推荐版本 | 安装参考 |
---|---|---|
JDK | 1.8 | ONEKEY——安装JDK1.8 |
Maven | ≥ 3.8 | ONEKEY——安装Maven3.8.4 |
Git | 最新稳定版 | apt 安装即可 |
Python | 2.6+ | Python 3 不兼容部分老构建脚本,需提供 Python 2 |
自检清单
- [ ]
JAVA_HOME
指向 JDK 1.8,java -version
正确 - [ ]
MAVEN_HOME
已配置,mvn -v
正常 - [ ]
python2
可用(Ubuntu 22.04 可通过apt install python2
安装) - [ ] 磁盘 ≥ 5GB,内存 ≥ 8GB,CPU ≥ 4 核
Python 2 提示
构建脚本依赖 Python 2,若默认 python
指向 3.x,需显式调用 python2
。
# 二、源代码修改(离线/半离线必做)
# 2.1 建立本地依赖目录
建议在 Ambari 源码同级创建 ambari-download-tar
目录,并放置以下 tar 包:
ambari-download-tar/
├─ hadoop-3.3.4.tar.gz
├─ hbase-2.4.13-bin.tar.gz
├─ grafana-enterprise-9.3.2.linux-amd64.tar.gz
└─ phoenix-hbase-2.4-5.1.2-bin.tar.gz
1
2
3
4
5
2
3
4
5
离线包下载
# 2.2 POM 本地化
在 ambari-metrics/pom.xml
中将外部 URL 替换为本地路径,例如:
file:${project.basedir}/../ambari-download-tar/hadoop-3.3.4.tar.gz
file:${project.basedir}/../ambari-download-tar/hbase-2.4.13-bin.tar.gz
file:${project.basedir}/../ambari-download-tar/grafana-enterprise-9.3.2.linux-amd64.tar.gz
file:${project.basedir}/../ambari-download-tar/phoenix-hbase-2.4-5.1.2-bin.tar.gz
1
2
3
4
2
3
4
笔记
仅修改 Ambari-Metrics 模块的 tar 定义项,减少回归面;如存在 profile 覆盖,需优先修改实际生效的配置段落。
# 2.3 启用 jdeb 打包
在相关 pom 文件的 <configuration>
节点中加入:
<skipPOMs>false</skipPOMs>
1
2
2
涉及的 pom 文件示例:
# 2.4 文件权限修改 postinst
本章节仅限会员开放,请参考本站 魔改-posinst-适配ubuntu22
# 2.5 ambari-metrics-assembly 适配调整
本章节仅限会员开放,请参考本站 魔改-pom-适配ubuntu22
警告
未执行上述处理,不影响编译,但生成的安装包在 Ubuntu 上安装必然报错。
# 三、执行编译
在 Ambari 源码根目录执行:
mvn -T 4C clean install -DskipTests -Drat.skip=true -Dbuild-deb
1
资源与耗时参考
- 首次构建:SSD + 8 核 + 8GB 内存约 3–20 分钟
- 缓存命中:1–3 分钟
常见阻断
- 外网受限且未做 POM 本地化 → 依赖下载失败
JAVA_HOME
/MAVEN_HOME
未生效 → 版本不匹配- Python 默认指向 3.x → 构建脚本执行失败
# 四、编译与运行结果
产物位置:
/opt/modules/ambari-metrics/ambari-metrics-assembly/target/ambari-metrics-assembly_3.1.0-SNAPSHOT-1.deb
1
安装包大小:
- 01
- [/metrics/aggregated] — 聚合数据范围 检查点09-19
- 02
- [/metrics] — 反向分析接口参数 请求抓包09-17
- 03
- [/metrics] — 普通指标写入方法 POST09-17