相信不少同窗都想經過閱讀一些框架的源碼,來提升本身的代碼能力,但每每在第一步,搭建環境的時候就碰了壁。git
本篇就來介紹下如何在Windows下,將最新版的Spark2.4.3編譯,並導入到IDEA編譯器中。最後經過在IDEA運行Spark自帶的一共Example代碼結尾。github
搭建Spark源碼環境所須要準備的一些東西須要先準備好。這裏也有我踩過的一些坑,我也會一併介紹。apache
首先須要先下載maven,並將maven的源地址修改成阿里源,相信不少同窗都已經配置好maven了,這裏簡單提下,maven源地址在國外,不改爲阿里源,那在下載依賴的時候,那速度會讓你懷疑人生的。瀏覽器
而後下載下scala2.11.8/scala2.11.12,由於目前spark彷佛還不支持2.12+,因此須要scala2.11+,至於2.11.8仍是2.11.12,應該沒什麼影響,不過我本身機器上是2.11.8就是。框架
下載spark源碼,不過不能直接github到spark的倉庫裏面直接下載,目前倉庫裏面的是3.+的測試版,應該要到releases裏面去找。
maven
不過我已經幫大家把那個連接找到了,複製到瀏覽器地址就有下載頁。測試
下載完後解壓,準備工做就算作完了。scala
直接導入項目是不行的,由於有些文件須要先編譯纔會產生,不過要編譯環境也不難,以前不是已經配置過的maven嘛。將下載好的spark2.4.3解壓,進入到其目錄,打開cmd,運行以下命令就行3d
mvn -T 4 -DskipTests clean package
這裏要注意一下,spark2.4.3目錄下的pom.xml文件,有兩個地方須要修改。第一個是pom.xml裏面的
電腦上的maven版本能夠通mvn --version這個命令查看。
好比個人電腦就是3.5.2,那麼相應的pom.xml裏面的
若是不修改的話,編譯的時候是會報錯的。
第二個要修改的地方是,修改pom.xml文件中的<scala.version>屬性,默認是2.11.12,須要修改爲本身電腦中的scala版本,這個下載的時候應該就會選擇,很少介紹。
若是<scala.version>和你電腦上的scala版本不一致的話,會出現下面的錯誤:
Error:scalac: Scala compiler JARs not found
另外說一句,spark源文件中有多個pom.xml,只須要改根目錄下的pom.xml文件就能夠了。完成修改後,就能開始編譯了。
對了,編譯的時候會比較慢,並且編譯的時候也會佔用電腦比較多的資源,建議睡覺前編譯:)
編譯完成後,如今就能夠導入到IDEA裏面了,直接
open => ${spark2.4.3}_path/pom.xml => Open as Project
導入後先彆着急,須要先改一下IDEA的maven配置,
File => Setting => 直接搜索maven => 更改Maven home directory
即更改如圖所示的地方,
由於IDEA會有自帶的maven,須要改爲電腦上本身安裝的,不然由於你是用本身電腦上maven編譯的,這時候用IDEA的maven來處理的話,某些依賴會報如下錯誤:
Library Maven: has broken classes path:
其實就是找不到啦。
OK,導入成功以後,別急,還有最後一個地方須要修改。
Menu -> Run -> Edit Configurations -> 點左上的 + -> Application
在VM options: 裏面,加上-Dspark.master=local。這個的做用是讓spark直接在本機啓動。
配置到這裏就結束了,接下來能夠運行一個example看看了。
到examples -> src -> scala -> LogQuery -> 右鍵 Run
就能成功看到運行了第一個示例spark程序了。
總結起來,就是先編譯,再導入,最後運行。
這個過程提及來簡單,不過其實有些坑卻很容易讓人半途而廢,有些坑我已經踩過了,但願能幫到大家:)
若是你在這個過程當中出現什麼問題沒法解決,也歡迎在本篇下留言,有空的話我也會幫忙看看的~
以上!