1. 程式人生 > >編譯spark1.6.1原始碼

編譯spark1.6.1原始碼

正常的情況下從spark官方網站下載的發行包已經可以滿足正常使用(預設支援了hive),但如果要編譯相應cdh版本的hadoop或者把ganglia打包進來等,那就要重新指定編譯引數來重新編譯原始碼了。建議最好在linux環境下進行編譯。

原始碼下載

這裡寫圖片描述

注意:原始碼放置目錄最好不要存在中文路徑

安裝並配置maven

根據官網的說明,通過maven來編譯spark1.6.1時對maven的版本是有要求的,需要maven3.3.3+以及java 7+。本次編譯使用的是maven3.3.9,jdk1.7

下載安裝maven,jdk以及配置好環境,具體步驟不再詳述。

編譯打包spark

進行編譯前需要設定maven使用記憶體,否則在編譯過程中會記憶體溢位,如果是linux系統下執行以下命令:

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

在windows系統下執行以下命令:

set MAVEN_OPTS=-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m

執行以下命令開始編譯相應的CDH版本以及支援Ganglia,hive:

mvn  -Phadoop-2.6 -Dhadoop.version=
2.6.0-cdh5.4.2 -Phive -Phive-thriftserver -Pyarn -Pspark-ganglia-lgpl -DskipTests -Dmaven.test.skip=true -e clean package

編譯過程中可能會因為網路原因導致解決不了包依賴,嘗試重新編譯,還有就是耐心等候了~~。本次編譯還算順利,期間因為maven版本過低出現過錯誤,但升級後解決了。

成功後可以在$SPARK_HOME/assembly/target/下看到spark-assembly-1.6.1-hadoop2.6.0-cdh5.4.2.jar

還可以通過以下命令打包生成部署包:

./make-distribution.sh --name 2.6.0-cdh5.4.2 --tgz -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.4.2 -Phive -Phive-thriftserver –Pyarn -Pspark-ganglia-lgpl

make-distribution自帶編譯過程,成功後可以在$SPARK_HOME/下看到spark-1.6.1-bin-2.6.0-cdh5.4.2.tgz

參考