一、文档说明
1.1、文档描述
Spark官网上提供的是已经编译打包好了的软件,这为我们学习和使用spark提供了方便,但是在真实的生产环境中部署spark组件,为了保证spark和hdfs以及yarn 的兼容性,我们需要自己来编译spark源码。本文描述了如何使用maven来编译打包spark源码
1.2、阅读对象
Spark 开发运维以及正在学习spark的同学
二、编译打包介绍
2.1、编译环境准备
操作系统:centos 6.8
JDK版本:jdk1.8.181(centos 6 系统中推荐使用1.8.121及以上的版本)
Maven:3.6.2(maven 中央仓库配置为阿里云仓库,仓库地址见文末附录1)
Spark源码版本:spark-3.0.0-preview-rc2
2.2、编译步骤
步骤1:在shell中先修改maven编译时候的jvm参数
:> exportMAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
步骤2:然后进入到spark-3.0.0-preview-rc2目录下在shell 中输入
:> cd /xxx/ spark-3.0.0-preview-rc2
步骤3:先执行一遍clean install 命令,将spark的所有依赖全部安装到本地,因为由于每个人的环境不同,很可能不能一次就成功编译。强烈建议先执行一遍此步骤
:> mvn -DskipTestsclean install
步骤4:等待命令执行成功后在执行如下编译打包指令,在shell 中输入
:> ./dev/make-distribution.sh--name "spark3" --tgz "-Pyarn,Hadoop-provided,hadoop-2.7,parquet-provided,orc-provided,hive"
如果一直不能编译成功,且不是应为依赖下载不下来的原因,请打开Hadoop的源码,阅读Hadoop build 的方法,安装编译Hadoop所需要的依赖组件。然后再次执行上面的编译打包指令
附录1:阿里云中央仓库地址
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
如可以直接访问外网,则不建议配置阿里云为中央仓库