zhixingheyitian 2020-06-01
1.下载spark源码包
2.下载scala
3.下载maven
4.防止maven内溢出:
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
5.在spark目录下,有pom文件的那里 执行:
执行maven安装
./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.7 -Phive -Phive-thriftserver -Pyarn -DskipTests clean package
6.打包:
./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.7
我们可以使用Spark源码目录中的dev下的make-distribution.sh脚本,官方提供的编译命令如下:
./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.4 -Phive -Phive-thriftserver -Pmesos -Pyarn
参数说明:
--name:指定编译完成后Spark安装包的名字
--tgz:以tgz的方式进行压缩
-Psparkr:编译出来的Spark支持R语言
-Phadoop-2.4:以hadoop-2.4的profile进行编译,具体的profile可以看出源码根目录中的pom.xml中查看
-Phive和-Phive-thriftserver:编译出来的Spark支持对Hive的操作
-Pmesos:编译出来的Spark支持运行在Mesos上
-Pyarn:编译出来的Spark支持运行在YARN上
那么我们可以根据具体的条件来编译Spark,比如我们使用的Hadoop版本是2.6.0-cdh5.7.0,并且我们需要将Spark运行在YARN上、支持对Hive的操作,那么我们的Spark源码编译脚本就是:
./dev/make-distribution.sh --name develop-scl --tgz -Pyarn -Phadoop-2.7 -Phive -Phive-thriftserver -Dhadoop.version=2.7.7 -U