以 v2.0.2 版本为列进行源码编译
- 从 github 上 clone 源码 git clone
- 切换到 v2.0.2 git checkout v2.0.2 -b dev_2.0.2
- build/mvn -DskipTests install 此部分等待时间最长,下面必要的软件和 jar 包
- 给 idea 装 scala 插件,具体就不说了,要是网速不好可以下载下来,选择从磁盘安装 idea plugin
- 导入 idea,在官方文档上有下面一些话
Some of the modules have pluggable source directories based on Maven profiles (i.e. to support both Scala 2.11 and 2.10 or to allow cross building against different versions of Hive). In some cases IntelliJ’s does not correctly detect use of the maven-build-plugin to add source directories. In these cases, you may need to add source locations explicitly to compile the entire project. If so, open the “Project Settings” and select “Modules”. Based on your selected Maven profiles, you may need to add source folders to the following modules:
spark-hive: add v0.13.1/src/main/scala
spark-streaming-flume-sink: add target\scala-2.10\src_managed\main\compiled_avro
意思就是 idea 在某些情况下不能正确的决定 source 目录,需要我们手动标记。我的情况是 spark-streaming-flume-sink 这个 moudle 没有正确的标记出来,手动标记一下 source 就行。
不然运行 example 时候回报 classnotfound
7. 在运行过程中发现找不到 guava 中的类,clipse jetty 类找不到等,找打 spark—parent-2.11 下的 pom
如下图所示,将 guava 和 jetty 相关的依赖 scope 都改成 compile
重新运行 example 中的列子,正确执行。
开始你的源码之旅吧!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于