使用 IntelliJ IDEA 導入 Spark 最新源碼及編譯 Spark 源代碼
在對 Spark 有了一定使用經驗后,為了能夠跟進 Spark 源代碼的開發進展,對其源代碼進行詳細的閱讀分析,本文詳細說明了如何使用 IntelliJ IDEA 從 Github 上導入最新的 Spark 源代碼,并對其進行編譯。
準備工作
首先你的系統中需要安裝了 JDK 1.6+,并且安裝了 Scala。之后下載最新版的 IntelliJ IDEA 后,首先安裝(第一次打開會推薦你安裝)Scala 插件,相關方法就不多說了。至此,你的系統中應該可以在命令行中運行 Scala。我的系統環境如下:
- Mac OS X(10.9.5)
- JDK 1.7.71
- Scala 2.10.4
- IntelliJ IDEA 14 </ol> 另外,最后還是建議大家開始先使用 pre-built 的 Spark,對 Spark 的運行、使用方法有所了解,編寫了一些 Spark 應用程序后再展開源代碼的閱讀,并嘗試修改源碼,進行手動編譯。
從 Github 導入 Spark 工程
打開IntelliJ IDEA 后,在菜單欄中選擇 VCS→Check out from Version Control→Git,之后在 Git Repository URL 中填入 Spark 項目的地址,并指定好本地路徑,如下圖所示。
點擊該窗口中的的 Clone 后,開始從 Github 中 clone 該項目,該過程試你網速而定,大概需要3-10分鐘。
編譯 Spark
當 clone 完畢后,IntelliJ IDEA 會自動提示你該項目有對應的 pom.xml 文件,是否打開。這里直接選擇 Open 該 pom.xml 文件,然后系統會自動解析項目的相關依賴,該步驟也會因你的網絡和系統相關環境,所需時間不同。
該步驟完成之后,請手動編輯 Spark 根目錄下的 pom.xml 文件,找到其中指定 java 版本的那一行(java.version),根據你的系統環境,如果使用的是 jdk1.7 ,那么或許需要你將其值改成1.7(默認是1.6)。
之后打開 shell 終端,在命令行中進入剛才導入的 spark 項目根目錄,執行
sbt/sbt assembly
該編譯命令將全部采用默認的配置來編譯 Spark,若想指定相關組件的版本,可以查看 Spark 官網中的 Build-Spark(http://spark.apache.org/docs/latest/building-spark.html),查看所有常用的編譯選項。該過程目前不需要 V*N 即可完成,為了預估編譯所需的時間,你可以在新開一個 shell 終端,不斷查看 spark 項目目錄的大小,我最終采用默認配置,編譯成功后的 spark 目錄大小為2.0G。
結束語
至此,為了檢驗你的編譯結果,可以在命令行中進入 spark/bin 目錄,運行 spark-shell,若一切都正常啟動,則編譯成功。若你修改了 Spark 的源碼,可以重新使用 sbt 來進行編譯,并且編譯的時間不會像第一次編譯那么長。
來自:http://my.oschina.net/eshijia/blog/371066