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
2、安装maven打包工具
首先说,官网一般推荐使用sbt, sbt比較适合于编译scala的project,maven一般适合于java的project。可是。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还是蛮用内存的。
此外还需配置java与scala的环境变量
#java export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera export JAVA_BIN=$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH export JAVA_LIBRARY_PATH=/opt/cloudera/parcels/CDH/lib/hadoop/lib/native #scala export SCALA_HOME=/opt/modules/scala-2.10.4 export PATH=$PATH:$SCALA_HOME/bin
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吧
看到没,打上自己的标签了。