TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • 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集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • 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集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • Ambari Views

    • Ambari Views 插件编译
      • 一、编译目标与产物预览
      • 二、编译准备
      • 三、进入源码目录
      • 四、编译命令
      • 五、打包 RPM/DEB 前的准备
      • 六、源码与仓库参考
      • 七、常见编译报错
      • 八、使用时报错与页面异常
  • Ambari

  • Ambari-Metrics

  • Ambari-Infra

  • 组件编译-Ambari
  • Ambari Views
JaneTTR
2025-10-30
目录

Ambari Views 插件编译Capacity-Scheduler

# 一、编译目标与产物预览 结果导向

我们先看下编译成功的效果图。

编译成功后,会得到下面的 jar 包。

这些就是最终的 Ambari View 插件包,可直接放入 /var/lib/ambari-server/resources/views/ 或随 RPM 包一同分发。

# 二、编译准备 环境依赖

组件 推荐版本 说明
系统 Kylin V10 / Rocky 8 / Ubuntu 22.04 均可编译
JDK JDK 17 Ambari 3.x 必须使用
Maven 3.8+ 建议使用官方稳定版本
网络 可访问中央仓库 首次构建下载依赖较慢

环境变量配置示例

export JAVA_HOME=/opt/modules/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH
java -version
1
2
3

# 三、进入源码目录

Ambari Views 源码位于 ambari/contrib/views 下:

cd ambari/contrib/views
1

这里包含多个视图模块:

模块名称 说明
files 文件浏览视图(File View)
capacity-scheduler YARN 调度器视图
ambari-view-commons 公共依赖模块
ambari-view-utils 工具模块
package 聚合与打包

# 四、编译命令 核心步骤

执行以下命令即可完成 views 模块编译:

mvn clean install -DskipTests
1

首次编译可能稍慢(下载依赖较多),后续编译通常 3~4 分钟即可。

编译完成后,你可以在 contrib/views/target/views-jars/ 目录下找到生成的 JAR 包。

image-20251030141233314_副本

# 五、打包 RPM/DEB 前的准备 整包构建

在执行 Ambari 整体打包之前,建议先编译好 views 子模块。 这样后续整包打包时,系统会自动将这些视图文件复制到 ambari-server/dist 中。

image-20251031105523280

编译命令如下:

# 使用 JDK 17
export JAVA_HOME=/opt/modules/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH

java -version

# 先编 Views 子模块
cd /opt/modules/ambari3/contrib/views
mvn clean install -DskipTests

# 再执行整体打包
cd /opt/modules/ambari3
mvn package install \
rpm:rpm \
-Drat.skip=true \
-Dcheckstyle.skip=true \
-Dspotbugs.skip=true \
-Pkylin10-x86_64 \
-Dttbigdata.release.version=2.2.1 \
-DskipTests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 六、源码与仓库参考

编译所需源码与环境均已准备,可前往以下仓库:

  • 🔗 https://github.com/TtBigdata/ambari-env (opens new window)
  • 🔗 https://gitee.com/tt-bigdata/ambari-env (opens new window)

# 七、常见编译报错 排查方向

在实际构建中,部分开发者可能会遇到 MDEP-187 类报错。 典型现象如下图所示:

image-20251024151914854

错误日志节选:

[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@518cf84a
[DEBUG]   (s) silent = false
[DEBUG]   (s) skip = false
[DEBUG]   (f) stripClassifier = false
[DEBUG]   (s) stripVersion = false
[DEBUG]   (f) useBaseVersion = true
[DEBUG]   (s) useRepositoryLayout = false
[DEBUG]   (s) useSubDirectoryPerArtifact = false
[DEBUG]   (s) useSubDirectoryPerScope = false
[DEBUG]   (s) useSubDirectoryPerType = false
[DEBUG] -- end configuration --
[INFO] Copying classes to /opt/modules/ambari3/contrib/views/files/target/lib/ambari-views-utils-3.0.0.0.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Ambari Contrib Views 3.0.0.0.0:
[INFO]
[INFO] Ambari Contrib Views ............................... SUCCESS [  4.940 s]
[INFO] Ambari View Utils .................................. SUCCESS [ 29.083 s]
[INFO] Ambari View Commons ................................ SUCCESS [ 18.491 s]
[INFO] Files .............................................. FAILURE [ 48.178 s]
[INFO] Capacity Scheduler ................................. SKIPPED
[INFO] Ambari Views Package ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:40 min
[INFO] Finished at: 2025-10-24T06:44:06Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies (default) on project files: Artifact has not been packaged yet. When used on reactor artifact, copy shou
ld be executed after packaging: see MDEP-187. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:3.1.1:copy-dependencies (default) on project files: Artifact has not been packag
ed yet. When used on reactor artifact, copy should be executed after packaging: see MDEP-187.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:569)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Artifact has not been packaged yet. When used on reactor artifact, copy should be executed after packaging: see MDEP-187.
    at org.apache.maven.plugins.dependency.AbstractDependencyMojo.copyFile (AbstractDependencyMojo.java:180)
    at org.apache.maven.plugins.dependency.fromDependencies.CopyDependenciesMojo.copyArtifact (CopyDependenciesMojo.java:249)
    at org.apache.maven.plugins.dependency.fromDependencies.CopyDependenciesMojo.doExecute (CopyDependenciesMojo.java:124)
    at org.apache.maven.plugins.dependency.AbstractDependencyMojo.execute (AbstractDependencyMojo.java:143)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:569)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :files
(base) [root@rocky8 views]#

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
84
85
86
87
88

这种报错属于 Maven 执行顺序问题, 完整的排查和解决步骤已整理在以下文档中:

👉 MDEP-187 编译错误专篇:从根因到修复

# 八、使用时报错与页面异常 运行期问题

若视图界面出现如下情况:

image-20251030110800303

页面卡在 loading node labels 阶段,说明 前端 View 无法正常从 YARN RM 获取资源数据。

该问题的多种成因与配置排查方案,请参考下列文章:

👉 Ambari Views 页面卡顿与加载异常处理

#Ambari#源码编译#Maven#RPM包#Kylin V10#Capacity-Scheduler#Files-View#性能优化
Ambari 编译打前端包如何提速

Ambari 编译打前端包如何提速→

最近更新
01
Ambari开启Kerberos认证加密类型错误 Kylin V10
11-05
02
KERBEROS SERVICE CHECK 报错
11-04
03
Test Kerberos Client报错:Failed to kinit
11-04
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式