我是参考这边博客搭建spark环境,同时整理了一些遇到的问题
准备环境
- 从github上下载spark相关版本的代码
- 可以通过git来下载,也可以选择相应的版本打包下载到本地,然后解压
- 安装scala(这里选择的版本,需要根据下载的spark源码版本中依赖的scala大版本)
- 安装jdk(jdk1.8以上,这个可以根据下载的spark源码中依赖的jdk版本,不过jdk1.8以上目前基本上不会有问题)
- 安装maven
- 安装IDE,并安装对应的scala的插件,这部分网上有很多资料,我使用的是idea,可以参考idea搭建spark开发环境
- 从github上下载spark相关版本的代码
- 可以通过git来下载,也可以选择相应的版本打包下载到本地,然后解压
spark代码导入IDE中
本地IDE运行spark自带样例
- 在idea中新添加一个application,并选择example中的样例,可以运行JavaLogQuery或JavaWordCount测试
- 这部分链接中的博客也有说明
- 运行配置中需要在
VM options
中添加下面的参数-Dspark.master=local
可能遇到的问题及解决思路
运行程序时,可能遇到两种错误
类似:
not found: type SparkFlumeProtocol...
原因:代码中缺少依赖的类或方法
解决:idea中,右击maven,选择指定模块,然后右击并选择Generate Sources and Update Folders
,
如上则选择“Spark Project External Flume Sink”模块,然后执行"Generate...."
效果相同的操作为cd external\flume-sink
-->mvn -DskipTests clean package
类似:
java.lang.classNotFoundException: org.spark_project.guava.cache.CacheLoader
原因:执行时缺少依赖jar包,这个问题主要会出现在用idea执行代码时候
因为pom中依赖的包多为provided,打包时并不会将这些依赖的包打进去,所以执行时会NotFound
解决:在要执行的模块的dependencies中添加缺少的jar包,
如果是spark模块的的包,则通过添加模块target中的jar,
如果是dependencies中已有的jar,则将scope的“provided”改为“compile”
注意:执行时可能会有很多ClassNotFound,需要依次将provided改为compile
参考博客:
https://www.cnblogs.com/listenfwind/p/11421206.html
https://cloud.tencent.com/developer/article/1010919
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。