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方法中打断点来看看:
完