Spark-1.5.2之修改源码后的自定义打包编译

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的工程,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))


Spark-1.5.2之修改源码后的自定义打包编译_第1张图片

把三个路径下的启动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源码还要久,最后 出现

Spark-1.5.2之修改源码后的自定义打包编译_第2张图片

终于全部SUCCESS后,不要看上面显示是11分钟,实际上中间由于网络问题,失败了好几次,不断地重试成功了。

注意,如果某些jar包下载不了,可以手动到提示的maven路径下下载,放到路径下:

/root/.m2
增加打包编译的成功率


最后执行后运行一下自己编译的Spark吧

Spark-1.5.2之修改源码后的自定义打包编译_第3张图片

看到没,打上自己的标签了。大笑

你可能感兴趣的:(maven,源码,scala,sbt,编译)