1. 程式人生 > >spark2.1.0編譯 cdh5.7.0版本

spark2.1.0編譯 cdh5.7.0版本

一、實現目標

從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包。

(至此完成~)