編譯spark1.6.1原始碼
阿新 • • 發佈:2019-01-22
正常的情況下從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