一、实现目标
从spark官网下载2.1.0的源码,然后编译对应hadoop版本的spark,从而可以解决很多兼容性问题,使程序运行环境更加优越,顺畅。
二、环境准备
1.硬件
无论云主机还是虚拟机,内存一定要4G以上,最好8G+。
2.软件
(1)java:spark 2.0以后的版本都用JAVA1.8+的
1)删除之前java
rpm -qa | grep jdk
结果:
java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el6_9.x86_64
java-1.7.0-openjdk-devel-1.7.0.181-2.6.14.8.el6_9.x86_64
删除
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el6_9.x86_64 java-1.7.0-openjdk
2)查看java -version
java version "1.5.0"
3)接着删除
rpm -qa | grep java
结果:
java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
tzdata-java-2012j-1.el6.noarch
java_cup-0.10k-5.el6.x86_64
删除
rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64 tzdata-java-2012j-1.el6.noarch
4)刷新
source /etc/profile
java -version
结果:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
(2)maven3.3.9
1)解压缩
tar -zxvf apache-maven-3.3.9-bin.tar.gz -C /opt/modules/
2)配置maven环境变量
vi /etc/profile
export MAVEN_HOME=/opt/modules/apache-maven-3.3.9
export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$MAVEN_HOME/bin
3)生效环境变量
source /etc/profile
4)检查是否安装成功
mvn -version
显示:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /opt/modules/apache-maven-3.3.9
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_151/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-358.el6.x86_64", arch: "amd64", family: "unix"
(3)scala:2.11.8
从spark2.0开始,默认使用scala 2.11以后的版本编译,检查scala版本
echo $SCALA_HOME
(4)配置maven内存
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
三、编译步骤
1.解压缩
tar -zxvf spark-2.1.0.tgz
2.修改/opt/software/spark-2.1.0/dev/make-distribution.sh文件,从而编译更加快速
VERSION=2.1.0
SCALA_VERSION=2.11 大版本
SPARK_HADOOP_VERSION=2.7.3
SPARK_HIVE=1
3.如果是cdh版本的hadoop,则需要修改/opt/software/spark-2.1.0/pom.xml.在repositories中添加:
<repository>
<id>cloudera</id>
<name>cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
4.设置内存
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
5.在spark根目录下运行
./dev/make-distribution.sh --tgz -PR -Phadoop-2.7.3 -Phive -Phive-thriftserver -Pyarn
6.编译成功后,在/opt/software/spark-2.1.0下面有编译成功的spark包。
(至此完成~)