win10使用idea阅读spark源码准备
环境
win10 + idea2019.3(scala 2.11.12插件) + maven3.6.0 + spark2.3.2
1.首先下载源码
参考:https://blog.csdn.net/u011464774/article/details/76704785(👍)
官网下载地址
http://spark.apache.org/downloads.html
但是那个选择版本和type的下拉箭头,点不动,可能是浏览器适配的问题?😟
备用下载地址🎺🎺🎺
http://archive.apache.org/dist/spark/spark-2.3.2/
选择spark-2.3.2.tgz
下载后解压
2.用idea打开源码
我是直接用open方式打开的
会初步导入依赖,如果网络环境好的话也许一次会成功
效果是:maven依赖里面没有显示红线了pom文件里面可能会有红线,暂时不管(我也不知道怎么解决)
如果依赖一直下载不成功,检查setting ->maven ->work offline如果有勾选就去掉
3.结构
我平时用到的是spark core,spark sql,spark streaming
可以看到project目录里有这些模块
4.build
点击build按钮,会发现报一堆错
我的解决是:
点击右侧Maven Project,然后点击第二个按钮,Generate Sources and Update Folders For All Projects,点击后Maven会下载编译需要的源码,需要等待一段时间,长短依赖网络的好坏
5.尝试运行examples模块的JavaWordCount
遇到一堆错,大概分为三类
参考:https://blog.csdn.net/qq_44868502/article/details/103241452
参考:https://blog.csdn.net/qq_36874292/article/details/81072717
参考:http://www.superxiaojie.com/2019/05/17/spark-source-code/#more(推荐😘)
5.1 提示没有找到类方法
例如Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession
当前模块的pom文件中对应的依赖应该会有下行,将其注释或者改成compile
<scope>provided</scope>
另一种方式是打开project structure
modules -> 选择examples那个模块 ->此时右侧有三个tag,分别是sources, paths, dependencies
选择dependencies将对应的依赖的scope改成compile
总结:我基本上把所有的依赖的scope为provided的都改成了compile,通过了编译运行😭
5.2 Could not find spark-version-info.properties
在当前模块的resource目录下,创建一个spark-version-info.properties文件,内容为空即可
5.3 A master URL must be set in your configuration at org.apache.spark.SparkContext
传入参数-Dspark.master=local
✌就到这里了