Spark源码编译
环境介绍
操作系统:CenterOS 7
Spark:spark-2.3.3
Maven:apache-maven-3.3.9
目标Haoop:hadoop-2.6.0-cdh5.15.1
编译步骤
- 安装配置maven,下载Spark源码,不再赘余!
- 使用./dev/make-distribution.sh编译Spark。
从官网可以看到编译Spark的参数配置介绍。
–name 2.6.0-cdh5.15.1 编译后的Spark名字的后半部
–tgz 编译的目标格式
-Pyarn 支持yarn模式
-Phadoop-2.6 目标hadoop版本
-Phive 支持hive
所以,在spark源码根目录,使用命令如下:
./dev/make-distribution.sh --name 2.6.0-cdh5.15.1 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.15.1
编译完成生成 spark-2.3.3-bin-2.6.0-cdh5.15.1.tgz。编译过程大概需要20分钟。
遇到问题及解决过程
1、
[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (scala-compile-first) on project spark-tags_2.11: Execution scala-compile-first of goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile failed. CompileFailed -> [Help 1]
注:由于解决问题过程比较坎坷,我没有记录具体问题细节,所以找了一个相似的问题,只有版本不同,内容相同。
关于这个问题,我查找了一晚上,各种解答,主要有什么Scalar版本不对,Maven版本不对等等。
最靠谱的解答,一次说完!
spark根目录下的pom.xml,修改三处!(可以通过查找关键字,按照我的办法处理)
关于第二步,如果里面找不到自己编译的版本,则添加上!
2、报错显示Hadoop找不到,很显然在maven库缺少我这版本hadoop的可用库。解决办法是依旧在这个pom.xml上修改。(注意添加的位置)
经过几个小时,终于,大功告成!