Spark源码编译

为什么需要编译?

        因为不同版本的HDFS在协议上是不兼容的,所以如果你想用你的Spark从HDFS上读取数据,那么你就的选择相应版本的HDFS来编译Spark,这个可以在编译的时候通过设置hadoop.version来选择,默认情况下,Spark默认为编译成Hadoop 1.0.4版本。现在可以使用的方法有Maven编译,sbt编译(时间较长),Spark自带脚本编译(实际还是调用Maven)。

        当然也可以去官网直接下载编译好的Spark,不过需要官方提供版本支持,我的hadoop版本为2.2,所以必须要自己编译。

 Spark源码编译_第1张图片


采用spark自带脚本编译

        因为该脚本其实是调用了Maven进行编译的,所以必须先安装Maven。

1. 安装Maven

从官网下载Maven包,解压到/usr/local/maven:

tar -zxf apache-maven-3.2.3-bin.tar.gz

sudo mv apache-maven-3.2.3 /usr/local/maven

配置安装目录:

sudo gedit /etc/profile  

在末尾加上:

MAVEN_HOME=/usr/local/mvn

export MAVEN_HOME

export PATH=${PATH}:${MAVEN_HOME}/bin

 

验证:

mvn –v

Spark源码编译_第2张图片

 

2. 编译spark

        在下载下来的Spark源码中的同一级目录下有个make-distribution.sh脚本,这个脚本可以打包Spark的发行包,可以通过下面的命令运行(编译成hadoop2.2版本,并打包):

./make-distribution.sh --tgz -Phadoop-2.2 -Pyarn -DskipTests -Dhadoop.version=2.2.0

 

编译完成:

Spark源码编译_第3张图片

 

可以在spark目录下找到该包:


你可能感兴趣的:(spark,源码编译,Maven,Spark)