Windows環境編譯Spark源碼


一、下載源碼包

  1. 下載地址有官網和github:

  http://spark.apache.org/downloads.html

  https://github.com/apache/spark

  Linux服務器上直接下載:wget https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0.tgz

  2. 解壓源碼

 

二、解壓環境

  需要maven、jdk、git、scala、hadoop環境,並配置環境變量。

 

二、使用Maven編譯Spark

  先找到解壓后的spark文件里的pom.xml把maven、jdk、scala、hadoop改成當前安裝的版本。如圖:

 

  maven庫的地址建議換成阿里的地址:http://maven.aliyun.com/nexus/content/groups/public

 

  在編譯過程需要保證編譯機器的是聯網的,以保證Maven從網上下載其依賴包。另外,編譯前需要設置JVM內存大小,否則在編譯過程中,會由於默認內存小而出現內存溢出的錯誤。編譯執行腳本如下,其中,參數-P表示激活依賴的程序及版本,-Dskip Tests表示編譯時跳過測試環節。

  1、設置maven內存的環境變量

    MAVEN_OPTS=-Xmx2g -XX:MaxPermSize=2048M -XX:ReservedCodeCacheSize=2048M

  2、右擊spark-2.4.0文件夾,選擇Git Bash here,彈出git窗口,輸入以下命令:

  ./build/mvn -Pyarn -Phadoop-2.8.4 -Dhadoop.version=2.8.4 -DskipTests clean package

  整個編譯過程編譯了約29個任務,每個版本的數量不同。如果是已經下載依賴包的情況,則編譯耗時1分鍾左右。由於編譯過程中需要下載較多的依賴包,因此整個編譯時間取決於網速,最終編譯完成后的文件夾大約為899MB。整個編譯可能會很長,要耐心等待。

  最終成功結果如下圖:

 

   如果在編譯過程中出現了錯誤,解決后再重新執行編譯命令:

  錯誤1:Failed to collect dependencies at org.jpmml:pmml-model:jar:1.2.15

    Could not resolve dependencies for project org.apache.spark:spark-core_2.11:jar:2.4.0

  這兩種都是依賴包下載失敗,為了避免重新跑腳本還會失敗浪費時間,建議使用idea加載jar包,或者到maven官網手動下載好放到maven本地庫里。

 

  錯誤2:有時第二次編譯時,會刪除源碼包里面target里面的文件失敗,可以手動刪除,或者重新解壓個新的spark源碼文件,再編譯。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM