Spark 源码阅读 01:环境搭建
源码阅读环境搭建
我这周都在抽时间尝试把Spark
源码编译成功。刚开始我选择的版本是 2.3+ 发现怎么都编译不成功。遇到的一个问题是 scala-maven-plugin compile failed
, 查版本号,修改版本后尝试未果。选早一点的版本的想法是说,阅读源码可能会少一些,毕竟版本越高,代码越庞大和复杂。
但是早期的版本已经是过去式了,依赖的其他包库也会修改和引入新的特性,编译失败卡的时间太久了,不值得投入,遂直接拥抱 Spark 3.0
编译源码
去 github 上克隆一份代码,切换到你想看的 Spark
版本。
Spark
官方网站上就有非常详细的步骤告诉你怎么编译。https://spark.apache.org/docs/3.0.0/building-spark.html
具体的,我执行了如下几步。这几步的细节在这里就不展开了,可以 Google 安装这些版本的依赖。
安装 mvn 3.6.3
安装 Java 8
安装 Scala 2.12
确保自己的安装环境有 git
执行如下命令,让 mvn 可使用的内存增加
编译过程需要花不少时间,有个地方下载速度非常慢。主要是从 maven 仓库中下载依赖,
解决方法是修改 Spark 源码根目录下的 pom.xml
文件,在文件中查找所有的 gcs-maven-central-mirror
(不止一个地方),并把 URL 改为阿里云的仓库地址。
最后执行:
经过漫长的等待,就可以编译完成啦!
如何食用代码
首先官方是推荐使用 Intellij IDEA
去阅读和开发源码的。导入 Intellij
也非常的简单,通过 pom.xml
导入为项目即可。一些有用的快捷键:
到此,就可以愉快地阅读源码啦。如果你不知道从哪里开始读,推荐看看下面的一些文件。
Reference
大码王: https://www.cnblogs.com/huanghanyu/category/1774530.html
littlemagic:https://so.csdn.net/so/search?q=spark%20core&t=blog&u=nazeniwaresakini&urw=
tobe:https://www.zhihu.com/people/tec-ck/posts?page=3
https://www.jianshu.com/p/3a9b26687d9c
https://blog.csdn.net/luyanbin_lqq/article/details/105579233
写的很详细,参考一下吧 https://linbojin.github.io/2016/01/09/Reading-Spark-Souce-Code-in-IntelliJ-IDEA/
版权声明: 本文为 InfoQ 作者【程序员赤小豆】的原创文章。
原文链接:【http://xie.infoq.cn/article/18502b88c294b9c297b9be4c7】。文章转载请联系作者。
评论