最近準備開始看spark源碼,第一步當然是要搭建一個舒適的spark源碼閱讀環境,通過單步調試才能順藤摸瓜的理清具體脈絡,有助與提高閱讀效率。在搭建環境過程中,遇到一些奇怪的錯誤,但居然都鬼使神差的搞定了,人品啊,哈哈哈
Spark的源碼使用scala語言編寫的,說到scala的IDE工具,首選當然是idea,idea安裝scala插件我這裏就詳說了,除了idea外,我們還需要安裝的軟件有:
- maven
- sbt
- git
1. 下載spark源碼
對於源碼,可以使用git從github上下載,也可以在spark官網上直接下載
http://spark.apache.org/
https://github.com/apache/spark.git
下載完成後,解壓到具體目錄。
2. 導入到idea(已安裝scala插件)
直接選擇import project
選擇剛剛解壓的spark目錄
next 選擇sbt項目
一直next,直至導入完成
慢慢等待吧,這是在搞定sbt依賴,可以選擇去吃個飯,再過來看看。
3. 編譯
在使用idea進行源碼編譯過程中,會遇到很多錯誤,基本上都是由於依賴引發,這裏我就我所遇到的問題
問題1:
這個問題我弄好很久,最終在網上找到答案,原因flume-sink所需的部分源文件idea不會自動下載,所有編譯時不能通過。
解決方法:
打開View -> Tool Windows -> Maven Projects
右鍵,選擇Generate Sources and Update Folders
隨後,Intellij IDEA會自動下載Flume Sink相關的包,搞定這個錯誤
其他有關編譯報錯問題,可以參考這個鏈接
http://apache-spark-user-list.1001560.n3.nabble.com/
4. 調試LogQuery
我們選擇對LogQery類進行調試,當然也可以在example下面選擇其他的測試類或者自己編寫類,方法類似
- Run->Edit configurations
- 添加Application,注意右側窗口中配置項內容的填寫,分別爲Main class, vm options, working directory, use classpath of module
-Dspark.master=local 指定Spark的運行模式,可根據需要作適當修改。
使用ctrl+n找到LogQuery類,可以先查看具體的測試代碼,
可以直接運行,或者對源代碼打斷點進行單步調試
大功告成!!!!