Spark-1.5.2之自定义打包编译,基于当前最新版本的spark源码1.5.2版本。自己编译spark是修改spark源码的必备条件,修改的源码自定义打包生效后才能发布到生产环境中。
本地详细介绍Spark-1.5.2编译的过程
1、下载Spark-1.5.2的源码
在官网下载,选择 一个合适自己网络的镜像
wget http://mirrors.noc.im/apache/spark/spark-1.5.2/spark-1.5.2.tgz
tar zxfv spark-1.5.2.tgz
首先说,官网一般推荐使用sbt, sbt比较适合于编译scala的工程,maven一般适合于java的工程。但是,sbt的源经常访问不到,甚至要翻*,你们懂得。
maven的源基本国内都能访问。
wget http://apache.dataguru.cn/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
解压安装包
tar zxfv apache-maven-3.3.9-bin.tar.gz
export MAVEN_HOME=/opt/software/spark/apache-maven-3.3.9 export PATH=$PATH:$MAVEN_HOME/bin export MAVEN_OPTS="-Xmx3g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"需要设置maven的jvm参数,打包spark还是蛮用内存的。
3、打包编译Spark-1.5.2
正式打包前,我们做一个事情,修改源码,比较简单的修改了
/** Print a welcome message */ override def printWelcome() { import org.apache.spark.SPARK_VERSION echo("""Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version %s compiled by kwu 20160101 /_/ """.format(SPARK_VERSION))
把三个路径下的启动scala文件的提示修改了
进入源码目录,执行打包命令
cd spark-1.5.2 ./make-distribution.sh --tgz -Phadoop-2.6 -Pyarn -DskipTests -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver
基于hadoop2.6的打包编译,并增加了hive的支持,然后就是漫长的等待,比我们当时编译hadoop源码还要久,最后 出现
终于全部SUCCESS后,不要看上面显示是11分钟,实际上中间由于网络问题,失败了好几次,不断地重试成功了。
注意,如果某些jar包下载不了,可以手动到提示的maven路径下下载,放到路径下:
/root/.m2增加打包编译的成功率
最后执行后运行一下自己编译的Spark吧
看到没,打上自己的标签了。