spark源码编译

一、编译spark源码

参考: https://www.cnblogs.com/zlslch/p/5865707.html

二、编译完成后运行example project报错解决

首先将example的pom.xml文件中的provided去掉

1、[not found: type SparkFlumeProtocol]
(https://blog.csdn.net/zhaoyunxiang721/article/details/49126725)
原因:部分jar下载不全

spark-2.4.3的编译

问题1、Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M1:enforce (enforce-versions) on project spark-parent_2.11: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.

根据提示信息,可得到是maven-enforcer-plugin这个插件强制约束了一些rules,查看pom文件,找到约束的rules
可以看到主要还是对maven和java版本的约束,查看机器的maven和java版本,果然发现和pom文件约束的版本不一样,解决办法:
1、更改pom文件中的maven或者java版本
2、更新机器的maven或者java版本
最好还是使用办法2,使用办法1的话,有可能自己机器中maven或者java版本本来就过低,也会导致有些代码无法兼容

问题2、Class not found
3.2 报错 java.lang.NoClassDefFoundError

解决办法:在ProjectStructure–>Modules–>对应的Module–>Dependencies–>Scope, 从provided 改为compile。但是这样一个一个改实在太蠢了,可以直接修改spark-examples_2.11.iml,将里面的scope="PROVIDED"全都替换成空就可以了。如果改了不成功可能是对应的Module选错了,可以多弄几个相关的,看是否解决问题

解释:如果你的jar包/依赖代码 在编译的时候需要依赖,在运行的时候也需要,那么就用compile。如果你的jar包/依赖代码 仅在编译的时候需要,但是在运行时不需要依赖,就用providedCompile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值