1. spark源码编译
1.1 下载源码
首先去Apache官网,http://spark.apache.org/downloads.html ,可以根据自己需要的版本下载相应的spark源码,如下图所示
编译spark源码推荐在linux环境中进行,在windows编译可能有一些问题,将下载过的spark源码上传到Linux机器进行解压即可
1.2 sbt编译spark源码
spark源码编译可以通过两种方法,一种是maven编译,另一种是sbt编译,这次用的是sbt。
需要提前安装sbt环境,sbt的下载网址为http://www.scala-sbt.org/download.html,下载解压后我们需要设置的选项如下
1.2.1 安装sbt
打开/etc/pfofile文件,加入sbt的环境变量
export sbt_home=/usr/local/sbt
export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$sbt_home/bin:$MVN_HOME/bin:$PATH
如果不对sbt配置文件进行更改,sbt默认的编译内存是1G,如果编译时报内存不足堆栈溢出的错误,可以调大sbt的编译内存,需要调整的文件是在sbt/bin目录下的sbt-launch-lib.bash文件,我编译时调到了2G,脚本修改如下
local mem=${1:-2048}
存储jar包和插件的路径默认在根目录下,如果要更改的话,需要配置/sbt/conf/sbtopts文件,配置选项如下
-sbt-dir /home/soft/sbt/.sbt
-sbt-boot /home/soft/sbt/.sbt/
boot-ivy /home/soft/sbt/.ivy2
所有配置文件完成后,可以输入sbt命令,看看是否有错误。第一次执行sbt命令,会下载sbt需要的插件和jar包,并存放在我们设置的目录下边,所以我们有相应的目录生成,证证明我们的配置已经生效,否则未生效,如下图所示
1.2.3 编译spark源码
进入/home/soft/spark/spark-1.2.0目录,如果需要指定hadoop版本的话,需要设置环境变量
export SPARK_HADOOP_VERSION=2.3.0-cdh5.1.0
export SPARK_YARN=true
然后执行命令
sbt assembly
开始对spark源码进行编译,第一次编译spark源码需要下载非常多的jar包,需要的时间也很长,一般需要1-2个小时,所以此时一定要保证网络良好,编译成功后,会在
spark-1.2.0/assembly/target/scala-2.10目录下生成我们合并过的jar包,spark-assembly-1.2.0-hadoop2.3.0-cdh5.1.0.jar