TT Bigdata TT Bigdata
首页
  • 部署专题

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

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

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

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

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

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

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

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

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • 准备阶段

  • 理解packages.gradle

  • 理解bigtop.bom

  • Hadoop编译

  • Flink编译

  • Spark编译

    • version-3.2.3

    • version-3.5.5

      • Spark_3.5.5编译
        • 编译前提说明:R 环境必须提前准备
        • 1. 构建环境准备
        • 2. 执行打包构建命令
          • 编译阶段执行截图如下:
        • 3. 编译结果展示
        • 4. 涉及修改点
      • [B]Spark版本适配改造(一)
      • [B]Spark版本适配改造(二)
  • Atlas编译

  • Superset编译

  • Zookeeper编译

  • Hbase编译

  • Hive编译

  • Kafka编译

  • Solr编译

  • Tez编译

  • Zeppelin编译

  • 组件编译-Bigtop
  • Spark编译
  • version-3.5.5
JaneTTR
2025-05-06
目录

Spark_3.5.5编译1.0.7+

# 编译前提说明:R 环境必须提前准备

Spark 构建脚本中启用了 --r 参数来支持 sparkr 模块,因此 R 环境必须提前配置,否则编译将会中断。

注意

缺少 R 会导致 make-distribution.sh 脚本失败,无法完成构建过程。

👉 R 环境一键安装脚本 必须准备

# 1. 构建环境准备

整个构建流程基于 Bigtop 提供的打包能力,依赖如下基础工具环境:

环境组件 推荐版本 安装参考
JDK 1.8 ONEKEY——安装JDK1.8
Maven 3.9.9 ONEKEY——安装Maven3.9.9
Gradle 内嵌于 Bigtop ONEKEY——安装Gradle5.6.4

# 2. 执行打包构建命令

我们使用 Bigtop 中的构建任务 spark-rpm 来一键构建 RPM:

gradle spark-rpm \
  -PparentDir=/usr/bigtop \
  -Dbuildwithdeps=true \
  -PpkgSuffix -d
1
2
3
4

构建过程中,会自动下载 Spark 源码,并进行编译:

下载源码

接着进入 RPM 构建流程,日志中会显示关键命令:

09:29:52.273 [ERROR] [system.err] + STATUS=0
09:29:52.273 [ERROR] [system.err] + '[' 0 -ne 0 ']'
09:29:52.273 [ERROR] [system.err] + cd spark-3.5.5
09:29:52.273 [ERROR] [system.err] + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
09:29:52.342 [ERROR] [system.err] + exit 0
09:29:52.343 [QUIET] [system.out] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.y512kQ
09:29:52.344 [ERROR] [system.err] + umask 022
09:29:52.344 [ERROR] [system.err] + cd /opt/modules/bigtop/build/spark/rpm//BUILD
09:29:52.344 [ERROR] [system.err] + cd spark-3.5.5
09:29:52.344 [ERROR] [system.err] + bash /opt/modules/bigtop/build/spark/rpm//SOURCES/do-component-build
09:29:52.345 [ERROR] [system.err] ++ dirname /opt/modules/bigtop/build/spark/rpm//SOURCES/do-component-build
09:29:52.345 [ERROR] [system.err] + . /opt/modules/bigtop/build/spark/rpm//SOURCES/bigtop.bom
09:29:52.345 [ERROR] [system.err] ++ ZOOKEEPER_VERSION=3.5.9
09:29:52.345 [ERROR] [system.err] ++ HADOOP_VERSION=3.3.4
09:29:52.345 [ERROR] [system.err] ++ HBASE_VERSION=2.4.13
09:29:52.345 [ERROR] [system.err] ++ HIVE_VERSION=3.1.3
09:29:52.345 [ERROR] [system.err] ++ TEZ_VERSION=0.10.1
09:29:52.345 [ERROR] [system.err] ++ OOZIE_VERSION=5.2.1
09:29:52.345 [ERROR] [system.err] ++ SOLR_VERSION=8.11.2
09:29:52.345 [ERROR] [system.err] ++ SPARK_VERSION=3.5.5
09:29:52.345 [ERROR] [system.err] ++ FLINK_VERSION=1.17.2
09:29:52.345 [ERROR] [system.err] ++ PHOENIX_VERSION=5.1.2
09:29:52.345 [ERROR] [system.err] ++ BIGTOP_GROOVY_VERSION=2.5.4
09:29:52.345 [ERROR] [system.err] ++ BIGTOP_UTILS_VERSION=3.2.0-SNAPSHOT
09:29:52.345 [ERROR] [system.err] ++ BIGTOP_SELECT_VERSION=3.2.0-SNAPSHOT
09:29:52.345 [ERROR] [system.err] ++ BIGTOP_JSVC_VERSION=1.2.4
09:29:52.345 [ERROR] [system.err] ++ ALLUXIO_VERSION=2.8.0
09:29:52.345 [ERROR] [system.err] ++ KAFKA_VERSION=2.8.1
09:29:52.345 [ERROR] [system.err] ++ YCSB_VERSION=0.17.0
09:29:52.345 [ERROR] [system.err] ++ ZEPPELIN_VERSION=0.10.1
09:29:52.345 [ERROR] [system.err] ++ GPDB_VERSION=5.28.5
09:29:52.346 [ERROR] [system.err] ++ AMBARI_VERSION=2.7.5
09:29:52.346 [ERROR] [system.err] ++ BIGTOP_AMBARI_MPACK_VERSION=2.7.5
09:29:52.346 [ERROR] [system.err] ++ LIVY_VERSION=0.7.1
09:29:52.346 [ERROR] [system.err] ++ RANGER_VERSION=2.4.0
09:29:52.346 [ERROR] [system.err] ++ SQOOP_VERSION=1.4.7
09:29:52.346 [ERROR] [system.err] ++ REDIS_VERSION=7.4.0
09:29:52.346 [ERROR] [system.err] ++ DOLPHINSCHEDULER_VERSION=3.2.2
09:29:52.346 [ERROR] [system.err] ++ DORIS_VERSION=2.1.7
09:29:52.346 [ERROR] [system.err] ++ NIGHTINGALE_VERSION=7.7.2
09:29:52.346 [ERROR] [system.err] ++ CATEGRAF_VERSION=0.4.1
09:29:52.346 [ERROR] [system.err] ++ VICTORIAMETRICS_VERSION=1.109.1
09:29:52.346 [ERROR] [system.err] ++ CLOUDBEAVER_VERSION=24.3.3
09:29:52.346 [ERROR] [system.err] ++ CELEBORN_VERSION=0.5.3
09:29:52.346 [ERROR] [system.err] ++ OZONE_VERSION=1.4.1
09:29:52.346 [ERROR] [system.err] ++ IMPALA_VERSION=4.4.1
09:29:52.346 [ERROR] [system.err] ++ TRINO_VERSION=474
09:29:52.346 [ERROR] [system.err] ++ HUDI_VERSION=1.0.1
09:29:52.346 [ERROR] [system.err] ++ PAIMON_VERSION=1.1.0
09:29:52.346 [ERROR] [system.err] ++ JDK_VERSION=1.8
09:29:52.346 [ERROR] [system.err] ++ SCALA_VERSION=2.12.13
09:29:52.346 [ERROR] [system.err] + BUILD_OPTS='-Divy.home=/root/.ivy2 -Dsbt.ivy.home=/root/.ivy2 -Duser.home=/root             -Drepo.maven.org=             -Dreacto
r.repo=file:///root/.m2/repository             -Dhadoop.version=3.3.4             -Dyarn.version=3.3.4             -Pyarn -Phadoop-3.2             -Phive -Phive-thrif
tserver             -Psparkr -Pkubernetes             -Pscala-2.12             -Dguava.version=27.0-jre             '
09:29:52.346 [ERROR] [system.err] + export 'MAVEN_OPTS=-Xss64m -Xmx4g -XX:ReservedCodeCacheSize=1g'
09:29:52.346 [ERROR] [system.err] + MAVEN_OPTS='-Xss64m -Xmx4g -XX:ReservedCodeCacheSize=1g'
09:29:52.346 [ERROR] [system.err] + ./dev/make-distribution.sh --mvn mvn --r -Divy.home=/root/.ivy2 -Dsbt.ivy.home=/root/.ivy2 -Duser.home=/root -Drepo.maven.org= -Dr
eactor.repo=file:///root/.m2/repository -Dhadoop.version=3.3.4 -Dyarn.version=3.3.4 -Pyarn -Phadoop-3.2 -Phive -Phive-thriftserver -Psparkr -Pkubernetes -Pscala-2.12
-Dguava.version=27.0-jre -DskipTests
09:29:52.347 [ERROR] [system.err] +++ dirname ./dev/make-distribution.sh
09:29:52.348 [ERROR] [system.err] ++ cd ./dev/..
09:29:52.348 [ERROR] [system.err] ++ pwd
09:29:52.348 [ERROR] [system.err] + SPARK_HOME=/opt/modules/bigtop/build/spark/rpm/BUILD/spark-3.5.5
09:29:52.348 [ERROR] [system.err] + DISTDIR=/opt/modules/bigtop/build/spark/rpm/BUILD/spark-3.5.5/dist
09:29:52.348 [ERROR] [system.err] + MAKE_TGZ=false
09:29:52.348 [ERROR] [system.err] + MAKE_PIP=false
09:29:52.348 [ERROR] [system.err] + MAKE_R=false
09:29:52.348 [ERROR] [system.err] + NAME=none
09:29:52.348 [ERROR] [system.err] + MVN=/opt/modules/bigtop/build/spark/rpm/BUILD/spark-3.5.5/build/mvn
09:29:52.348 [ERROR] [system.err] + ((  19  ))
09:29:52.348 [ERROR] [system.err] + case $1 in
09:29:52.348 [ERROR] [system.err] + MVN=mvn
09:29:52.348 [ERROR] [system.err] + shift
09:29:52.348 [ERROR] [system.err] + shift
09:29:52.348 [ERROR] [system.err] + ((  17  ))
09:29:52.348 [ERROR] [system.err] + case $1 in
09:29:52.348 [ERROR] [system.err] + MAKE_R=true
09:29:52.348 [ERROR] [system.err] + shift
09:29:52.348 [ERROR] [system.err] + ((  16  ))
09:29:52.348 [ERROR] [system.err] + case $1 in
09:29:52.348 [ERROR] [system.err] + break
09:29:52.348 [ERROR] [system.err] + '[' -z /opt/modules/jdk1.8.0_202 ']'
09:29:52.348 [ERROR] [system.err] + '[' -z /opt/modules/jdk1.8.0_202 ']'
09:29:52.348 [ERROR] [system.err] ++ command -v git
09:29:52.348 [ERROR] [system.err] + '[' /usr/bin/git ']'
09:29:52.349 [ERROR] [system.err] ++ git rev-parse --short HEAD
09:29:52.882 [ERROR] [system.err] + GITREV=13021fc
09:29:52.882 [ERROR] [system.err] + '[' '!' -z 13021fc ']'
09:29:52.882 [ERROR] [system.err] + GITREVSTRING=' (git revision 13021fc)'
09:29:52.882 [ERROR] [system.err] + unset GITREV
09:29:52.883 [ERROR] [system.err] ++ command -v mvn
09:29:52.884 [ERROR] [system.err] + '[' '!' /opt/modules/apache-maven-3.8.4/bin/mvn ']'
09:29:52.885 [ERROR] [system.err] ++ mvn help:evaluate -Dexpression=project.version -Divy.home=/root/.ivy2 -Dsbt.ivy.home=/root/.ivy2 -Duser.home=/root -Drepo.maven.o
rg= -Dreactor.repo=file:///root/.m2/repository -Dhadoop.version=3.3.4 -Dyarn.version=3.3.4 -Pyarn -Phadoop-3.2 -Phive -Phive-thriftserver -Psparkr -Pkubernetes -Pscal
a-2.12 -Dguava.version=27.0-jre -DskipTests
09:29:52.885 [ERROR] [system.err] ++ grep -v INFO
09:29:52.885 [ERROR] [system.err] ++ tail -n 1
09:29:52.885 [ERROR] [system.err] ++ grep -v WARNING

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
89
90
91
92
93
94
95
96
97
98
99

我们从日志中提取出最终的实际 Maven 编译命令如下:

mvn clean package -DskipTests -Dmaven.javadoc.skip=true \
  -Dmaven.scaladoc.skip=true \
  -Dmaven.source.skip \
  -Dcyclonedx.skip=true \
  -Divy.home=/root/.ivy2 \
  -Dsbt.ivy.home=/root/.ivy2 \
  -Duser.home=/root \
  -Drepo.maven.org= \
  -Dreactor.repo=file:///root/.m2/repository \
  -Dhadoop.version=3.3.4 \
  -Dyarn.version=3.3.4 \
  -Pyarn \
  -Phadoop-3 \
  -Phive \
  -Phive-thriftserver \
  -Psparkr \
  -Pkubernetes \
  -Pscala-2.12 \
  -Dguava.version=27.0-jre \
  -DskipTests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

相比 Spark 3.2.3,这里 -Phadoop-3.2 被统一为 -Phadoop-3,其他参数保持一致。构建核心参数

当然你也可以使用官方的脚本,外挂一些其他参数如下所示。

./dev/make-distribution.sh --mvn mvn --r \
-Divy.home=/root/.ivy2 \
-Dsbt.ivy.home=/root/.ivy2 \
-Duser.home=/root \
-Drepo.maven.org= \
-Dreactor.repo=file:///root/.m2/repository \
-Dhadoop.version=3.3.4 \
-Dyarn.version=3.3.4 \
-Pyarn \
-Phadoop-3.2 \
-Phive \
-Phive-thriftserver \
-Psparkr \
-Pkubernetes \
-Pscala-2.12 \
-Dguava.version=27.0-jre \
-DskipTests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 编译阶段执行截图如下:

image-20250506152116000

编译时间提示

该阶段可能持续 30~60 分钟,期间 CPU 和内存使用率较高,建议在资源充足的机器上执行。

# 3. 编译结果展示

当所有阶段成功完成后,并生成如下 RPM 包文件:

编译结果

详细文件结构如下图所示:

编译后的文件清单

spark_3_5_5-3.5.5-1.el7.noarch.rpm
spark_3_5_5-core-3.5.5-1.el7.noarch.rpm
spark_3_5_5-datanucleus-3.5.5-1.el7.noarch.rpm
spark_3_5_5-history-server-3.5.5-1.el7.noarch.rpm
spark_3_5_5-master-3.5.5-1.el7.noarch.rpm
spark_3_5_5-python-3.5.5-1.el7.noarch.rpm
spark_3_5_5-sparkr-3.5.5-1.el7.noarch.rpm
spark_3_5_5-thriftserver-3.5.5-1.el7.noarch.rpm
spark_3_5_5-worker-3.5.5-1.el7.noarch.rpm
spark_3_5_5-yarn-shuffle-3.5.5-1.el7.noarch.rpm
1
2
3
4
5
6
7
8
9
10

# 4. 涉及修改点

按顺序修改即可

  • Spark版本适配改造(一)
  • Spark版本适配改造(二)
#Spark#RPM#Bigtop#编译#R语言支持
Spark_3.2.3编译
[B]Spark版本适配改造(一)

← Spark_3.2.3编译 [B]Spark版本适配改造(一)→

最近更新
01
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式