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

  • Ambari-Metrics

    • Ambari-Metrics 环境包高速下载
    • Ambari-Metrics-Redhat下源码编译指南
    • [改造]-魔改pom-适配rocky8
    • Ambari-Metrics-Ubuntu下源码编译指南
    • [改造]-魔改posinst-适配ubuntu22
    • [改造]-魔改pom-适配ubuntu22
      • 一、背景与问题
      • 二、改造文件位置
      • 三、改造点 1 — 去掉 Python2 限制
      • 四、改造点 2 — 补全 Collector 目录下的 jar 包
      • 五、改造点 3 — 拷贝正确的内置 HBase 包
  • Ambari-Infra

  • 组件编译-Ambari
  • Ambari-Metrics
JaneTTR
2025-08-10
目录

[改造]-魔改pom-适配ubuntu22New

# 一、背景与问题

在 Ubuntu 22.04 上构建 Ambari-Metrics 时,ambari-metrics-assembly/pom.xml 存在以下三类兼容性问题:

  1. 遗留的 Python2 依赖 Ubuntu 22.04 默认不再提供 python2,但 pom.xml 中依然显式引用 python2,导致构建阶段报错。
  2. Collector 目录 jar 包缺失 构建出的 deb 包中 Collector 目录下部分依赖 jar 缺失,启动时会出现 ClassNotFoundException。
  3. 内置 HBase 库路径与版本不匹配 pom.xml 中 HBase 库拷贝路径错误或不全,AMS 启动时找不到对应的 jar。

改造必要性

如果不进行改造:

  • 构建阶段会因 Python2 缺失直接失败;
  • 安装后 Collector 无法正常启动;
  • 内置 HBase 与 AMS 版本不匹配,导致 Metrics 数据无法写入。

# 二、改造文件位置

修改文件路径:

ambari-metrics-assembly/pom.xml
1

# 三、改造点 1 — 去掉 Python2 限制

Ubuntu 22.04 无需再绑定 python2,保留 python 即可,避免构建时额外依赖问题。

image-20250814144719697

改造目标

  • 删除 pom.xml 中所有 python2 引用
  • 保留通用的 python 依赖声明
改造前后影响

改造前:

  • Maven 构建需要系统存在 python2,Ubuntu22.04 下直接报错

改造后:

  • 使用系统默认 Python 版本(一般为 Python3)
  • 避免无关依赖导致的构建中断

# 四、改造点 2 — 补全 Collector 目录下的 jar 包

构建出的 deb 包中 /usr/lib/ambari-metrics-collector 下缺失部分依赖,需要在 <data> 节点中补全定义。

image-20250814145016330


<data>
    <src>${collector.dir}/target/lib</src>
    <type>directory</type>
    <excludes>
        *tests.jar,
        findbugs*.jar,
        jdk.tools*.jar,
        hadoop*.jar,
        hbase*.jar
    </excludes>
    <mapper>
        <type>perm</type>
        <filemode>644</filemode>
        <prefix>/usr/lib/ambari-metrics-collector</prefix>
    </mapper>
</data>
<data>
<src>${collector.dir}/target/embedded/${hbase.folder}/lib</src>
<type>directory</type>
<includes>
    hadoop*.jar,
    hbase*.jar
</includes>
<mapper>
    <type>perm</type>
    <filemode>644</filemode>
    <prefix>/usr/lib/ambari-metrics-collector</prefix>
</mapper>
</data>
<data>
<src>${collector.dir}/conf/unix/sqlline</src>
<type>directory</type>
<mapper>
    <type>perm</type>
    <dirmode>755</dirmode>
    <filemode>755</filemode>
    <prefix>/usr/lib/ambari-metrics-collector/bin</prefix>
</mapper>
</data>
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

提示

  • excludes 用于排除测试类与不必要的工具 jar
  • 嵌入式 HBase 的 hadoop/hbase jar 必须单独定义 <includes> 保证落盘

# 五、改造点 3 — 拷贝正确的内置 HBase 包

AMS 内置的 HBase 包需要拷贝到 /usr/lib/ams-hbase/lib,且版本与构建时一致(此处为 2.4.13)。

image-20250814145214070


<data>
    <src>${collector.dir}/target/embedded/hbase-2.4.13/lib/</src>
    <type>directory</type>
    <includes>
        re2j*.jar,
        failureaccess*.jar,
        stax2-api*.jar,
        woodstox-core*.jar,
        hadoop-annotations*.jar,
        hadoop-auth*.jar,
        hadoop-common*.jar,
        hadoop-client*.jar,
        commons-configuration2*.jar,
        hadoop-yarn-api-*.jar,
        hadoop-yarn-client-*.jar,
        hadoop-yarn-common-*.jar,
        hadoop-yarn-registry-*.jar,
        hadoop-yarn-server-applicationhistoryservice-*.jar,
        hadoop-yarn-server-common-*.jar,
        hadoop-yarn-server-nodemanager-*.jar,
        hadoop-yarn-server-resourcemanager-*.jar,
        hadoop-yarn-server-timelineservice-*.jar,
        hadoop-yarn-server-web-proxy-*.jar
        hadoop-registry-*.jar
    </includes>
    <mapper>
        <type>perm</type>
        <filemode>644</filemode>
        <prefix>/usr/lib/ams-hbase/lib</prefix>
    </mapper>
</data>
<data>
<src>${collector.dir}/target/lib/</src>
<type>directory</type>
<includes>
    phoenix*.jar,
    antlr*.jar,
    guava-28*.jar,
    hadoop-shaded-protobuf*.jar,
    hadoop-shaded-guava*.jar
</includes>
<mapper>
    <type>perm</type>
    <filemode>644</filemode>
    <prefix>/usr/lib/ams-hbase/lib</prefix>
</mapper>
</data>
<data>
<src>${project.build.directory}/embedded/${hadoop.folder}/share/hadoop/yarn</src>
<type>directory</type>
<includes>hadoop-yarn-registry*.jar</includes>
<mapper>
    <type>perm</type>
    <prefix>/usr/lib/ams-hbase/lib</prefix>
    <filemode>644</filemode>
</mapper>
</data>
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

关键要点

  • hbase-2.4.13/lib 中指定了 AMS 运行必需的 HBase 和 Hadoop 依赖
  • Phoenix 及其依赖需从 target/lib 拷贝到 HBase lib 中
  • Yarn Registry jar 需额外从 Hadoop share 路径拷贝
#Ambari-Metrics#Ubuntu22.04#编译#源码#安装#配置
[改造]-魔改posinst-适配ubuntu22
Ambari-Infra 源码编译指南

← [改造]-魔改posinst-适配ubuntu22 Ambari-Infra 源码编译指南→

最近更新
01
[/metrics/aggregated] — 聚合数据范围 检查点
09-19
02
[/metrics] — 反向分析接口参数 请求抓包
09-17
03
[/metrics] — 普通指标写入方法 POST
09-17
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式