除錯spark原始碼

停不下的腳步發表於2015-06-22
https://stackoverflow.com/questions/33311794/import-spark-source-code-into-intellj-build-error-not-found-type-sparkflumepr
目標:可以在spark原始碼內打斷點除錯,比如我們可以看flatMap方法內部執行。
環境:
spark 1.4
intellij idea
mac os
第一步:下載spark原始碼

第二步:編譯spark
進入下載好的spark的根目錄執行:
./sbt/sbt gen-idea

注:網上有的文章第二步是直接將專案匯入到intellij中,讓IDE通過SBT去編譯,我再嘗試多次後發現經常在某些包上timeout。我在這一步通過命令來編譯,就可以觀測到哪些依賴包下載不了,手動去下載。再有就是我用了VPN有的包依然下載不了,需要多切換幾個線路試試,這一步耗費數個小時,希望大家的網給力。

第三步:將編譯好的spark專案匯入到intellij中





第四步:編寫測試類除錯spark原始碼
期初我想新建個module然後依賴spark的core module,這樣做後編譯沒錯但是執行報錯,所以當前是在core module中寫測試類了,這個問題留著後面解決。


我改變了log4j.properties 來看下執行結果:




我們給map方法中打斷點來看看:

相關文章