先说结论
导入依赖的顺序也会对程序产生影响
发现问题
- 在低版本eclipse上已经完成flume+kafka+SparkStreaming+Mysql的整合(说明代码没有问题),奈何低版本的eclipse实在难用(各种方面的难用。。想念idea),于是想在最新版eclipse上移植该代码。
- 结果各种报错,前面的报错也很让我抓狂,但是我没有来得及记录下来,但是确实是和scala的版本有关。高版本scala向下兼容性不好。有些包被重复编译。可能减少一些包可以解决问题。。可能。。反正我是换用了低版本的scala。总之不同版本之间的互相兼容是一个大问题(不过高版本scala对低版本大数据框架兼容性不好是我没想到的 ),解决它之后,基本上报错消失。。基本上。。
- 兼容性问题解决之后,又报了一个标题上的错误’‘com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.9.1’’。再度难倒我。
问题解决
这个问题很玄学,居然和导入包的顺序有关??
导入包时:
1、spark安装包中的jar包
2、kafka安装包中的jar包
3、sparkstreaming和kafka的整合jar包
然后。。还真的跑起来了。
难道说,难道说。。难道说先导入的包不能调用后导入的包??
IDEA上也有类似问题: 参考博客.