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,修改三处!(可以通过查找关键字,按照我的办法处理)
Spark源码编译
Spark源码编译
Spark源码编译
关于第二步,如果里面找不到自己编译的版本,则添加上!
2、报错显示Hadoop找不到,很显然在maven库缺少我这版本hadoop的可用库。解决办法是依旧在这个pom.xml上修改。(注意添加的位置)
Spark源码编译

经过几个小时,终于,大功告成!
Spark源码编译