TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • 开发环境

  • Ambari 编译

  • Bigtop 编译

  • Ambari 源码编译

    • Ambari Views

    • 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
目录
一、背景与问题
二、改造文件位置
三、改造点 1 — 去掉 Python2 限制
四、改造点 2 — 补全 Collector 目录下的 jar 包
五、改造点 3 — 拷贝正确的内置 HBase 包

[改造]-魔改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#Ambari#源码编译#Ubuntu
[改造]-魔改posinst-适配ubuntu22
Ambari-Infra 源码编译指南

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

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式