Spark 2.11 源码阅读导入 IntelliJ IDEA 教程

现在 Spark 的版本都到 2.11 了,网上也有很多源码阅读环境搭建的教程,但是总觉得不够简洁。之前有的教程使用的是 SBT 编译的 Spark ,但是 SBT 在国内由于网络原因真的很痛苦,但是 Spark 现在好像只能使用 Maven 进行编译了,Maven 我其实一直是很喜欢使用的,因为它可以配置国内的源,所以不存在网络的问题,编一起来溜溜的。

下载源码

因为 Spark 已经托管在 Github 上面了,所以使用 Git 可以很容易的将代码 Clone 下来,下面给出地址,不会 Git 的同学自行百度吧。
地址:https://github.com/apache/spark

导入源码

我这里使用的 IDE 是 IntelliJ IDEA,我最喜欢的还是它的调试功能,用习惯了之后再也不回去了( Eclipse 都忘记怎么用了)。导入的方式也很简单,直接导入项目根目录下的 pom 文件就可以了,剩下的 IDE 会自己完成。

编译源码

源码导入成功之后我们可以使用 IDEA 的 build 功能编译一下源码,看看源码有没有什么问题。但是 build 的时候会提示有很多 Java 类或者 Scala 类丢失,这是什么原因了?主要是 Spark SQL 中有很多语法解析工具是使用 ANTLR 生成的,如果我们不用 Maven 进行一些编译操作,就会提示文件丢失。通俗易懂的说就是 Spark 中有些代码需要 Maven 的一些 plugin 编译之后才会生成相应的代码,既然知道了原因我就来说明一些解决办法。

  • 解决办法

    首先我们找到代码缺失所在的模块,然后我们在 Maven 的工具栏中找到对应的模块执行 Generate Source and Update Folders


至于 Spark 的源码为什么没有包含这些代码,我的理解是这些代码不是开发者自己写的,而是由其它工具编译生成的,我的这个猜想也得到知乎上 Spark 大神的回复。

发表评论

电子邮件地址不会被公开。 必填项已用*标注