前提條件(環境要求)java
jdk版本:1.7+linux
scala版本:1.10.4+apache
maven版本:3.3.3+服務器
本博客中使用的軟件版本網絡
spark版本:spark-1.6.1.tar.gz(源碼) maven
jdk版本:jdk-8u151-linux-x64.tar.gzoop
maven版本:apache-maven-3.3.9.tar.gzui
scala版本:scala-2.10.4.tgzurl
以上軟件均可以到官網下載spa
本文章約束兩個目錄
/opt/softwares 安裝包
/opt/modules 安裝的目錄
編譯方式:
打包編譯make-distribution.sh
1、環境配置
一、將spark、jdk、maven、scala軟件包上傳到Linux系統指定的目錄:/opt/softwares/
二、maven安裝與配置
tar -zxvf apache-maven-3.3.9.tar.gz -C /opt/modules
在/etc/profile配置文件中最底部配置如下信息
#MAVEN#
export MAVEN_HOME=/opt/modules/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
3 、java安裝與配置
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /opt/modules
在/etc/profile配置文件中最底部配置如下信息
#JAVA_HOME#
export JAVA_HOME=/opt/modules/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
四、scala安裝與配置
tar -zxvf scala-2.10.4.tgz -C /opt/modules
在/etc/profile配置文件中最底部配置如下信息
#scala#
export SCALA_HOME=/opt/modules/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
五、maven倉庫配置
將repository-1.6.1.zip解壓到~/.m2文件夾中
六、解壓spark源碼包
tar -zxvf spark-1.6.1.tar.gz -C /opt/modules
七、修改make-distribution.sh文件內容(在/opt/modules/spark-1.6.1目錄中)
在129行添加如下內容
VERSION=1.6.1
SCALA_VERSION=2.10.4
SPARK_HADOOP_VERSION=2.5.0-cdh5.3.6
SPARK_HIVE=1
note:
SCALA_VERSION配置上你的scala的版本, 多是2.10.x 或者2.11.x
SPARK_HADOOP_VERSION配置上你的hadoop版本
SPARK_HIVE 1表示須要將hive的打包進去, 非1數字表示不打包hive
八、修改pom.xml文件 (在/opt/modules/spark-1.6.1目錄中)
在166行 scala版本修改爲你對應的版本 我這裏是修改爲 2.10.4
在2522行 scala版本修改爲你對應的版本 我這裏是修改爲 2.10.4
九、添加依賴服務文件
前提:使用的scala版本是2.10.4,pom.xml文件中也進行了修改
複製scala-2.10.4.tgz和zinc-0.3.5.3.tgz到spark根目錄的build文件夾中, 並解壓
十、編譯spark
在spark目錄中執行命令
./make-distribution.sh --tgz \
-Phadoop-2.4 \
-Dhadoop.version=2.5.0-cdh5.3.6 \
-Pyarn \
-Phive -Phive-thriftserver
十一、最終spark編譯成功標誌
十二、須要注意的幾點
1)若是maven不是國內的鏡像下載會比較慢 ,建議改爲國內鏡像
配置鏡像(修改settings.xml文件)
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror> <!– cdh 版本編譯 可選指定-->
<id>cloudera</id>
<mirrorOf>central</mirrorOf>
<name>cloudera repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</mirror>
2)配置域名解析服務器
# vi /etc/resolv.conf
內容:
nameserver 8.8.8.8
nameserver 8.8.4.4
3)編譯可能出現的問題
在編譯的過程當中,可能卡死,而後不進行編譯的狀況出現,若是超過十分鐘沒有動靜的話,能夠考慮是不是編譯出現問題。問題出現
緣由是:網絡很差、機器內存不夠、其餘緣由。解決方案:1. 關閉編譯的進程。直接退出當前會話,而後重新進入在編譯。2. 添加虛擬機內存(最好4G+),重啓虛擬機再編譯