話一句
首先建議大家首先有一定的Spark基礎,再來看源碼。相信會學到更多的東西,尤其是整個App的運行過程,Spark的運行流程。
今天弄了一天,總算是弄好了。花費時間最多的就是在編譯Spark。整個過程不是在排錯就是在排錯的路上。話不多說,直接說具體怎么搭建,同時也方便自己以后查閱。
準備工作:安裝并下載一些必要的工具,本人使用的操作系統是Win10
1. JAVA1.8
2.Scala2.11.12
3.Maven3.5.3
4.git2.17.0
5.Spark2.2.1源碼
6.Intellij IDEA 2017
Spark源碼下載:
下載地址:
http://spark.Apache.org/downloads.html
選擇Source Code進行源碼下載。
開始編譯Spark
下載好源碼之后,然后將其解壓,使用cmd命令,進入到Spark的源碼目錄下進行mvn的編譯。
在這里我們介紹下一個少走坑路的命令,我也是踩了很多坑才在StackOverflow上找到的。
使用命令:mvn -Dscala-2.11.12 -DskipTests clean package
進行Spark的編譯,在這里指定自己下載安裝好的Scala版本,主要是防止和spark里面的Scala版本不一致。
在編譯過程中遇到的錯誤:
- org.apache.maven.plugins:maven-antrun-plugin:1.8:run這個錯誤antrun。主要原因是git沒有安裝,如果安裝了git環境,就將git的bin目錄添加到環境變量中Path下。
- 如果遇見其他的錯誤,比如說在編譯過程中,SparkSQL編譯失敗了,說什么找不到之類的,忽略,然后重新執行該命令進行編譯,可能有時候是因為網咯原因,導致一些jar包沒有下載下來。重新運行就好了。我是這樣解決的。反復執行了好幾次吧。然后終于編譯成功了。
然后使用IDEA打開源代碼編譯后的目錄。
菜單欄--> File --> Open --> 選擇根目錄下的pom.xml。然后確定就行了,等待idea加載環境。
運行demo代碼:
在這里我們運行Pi這個例子。
首先我們先將依賴工程依賴添加進去。
添加Scala依賴
然后能打開這樣一個窗口。
在這里可以添加Java依賴也可以添加Scala的依賴。
然后我們還需要添加scala的一些依賴Jar。
然后選擇Spark根目錄下的
assembly/target/scala-2.11/jars/
就ok拉。
做好這些之后,我們就開始運行Pi程序吧。
他說我們沒有指定MasterURL,需要在config中配置。
RUN --> Edit Configurations
然后運行。
這樣我們的PI就出來了。
當然也可以手動在代碼中指定master的地址哈。比如說這樣:
我試過也是可以的哈。
然后就可以單步調試代碼,閱讀源碼了。