分享

spark任务执行的时候jar包的加载顺序问题

mjjian0 发表于 2016-12-9 15:04:00 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 4 24065
是这样的,项目中用的scala写的spark任务,有用到json与map互转,找到了一个工具:play-json,这个工具是scala写的。
项目本地运行测试没问题,发到线上集群其中一个节点,就报了异常:
1.png

是play-json依赖了jackson-core包,但是提示的是jar包冲突,项目打包的时候选择的是轻包模式(就是打包的时候,没有把maven的pom的包打到项目里),用到的包放在集群一个节点的目录下,然后在运行任务的时候加  --jars参数把要的包带上。

我运行命令是加了项目异常所需要的那个包了,-jars /opt/gw-job/lib/jackson-core-2.5.4.jar,但是就是报了异常;
然后怀疑:任务执行的时候首先加载hadoop-yarn下的jar包;我的环境是cdh集成的,看到这个目录下:
2.jpg

有几个版本的jackson-core包;
只是怀疑,并没有时间验证,然后换了种方式去做json的转换。
最后。。。。童鞋们,大家一起讨论下这个问题啊,各抒己见啊。。。。谢谢。


已有(4)人评论

跳转到指定楼层
langke93 发表于 2016-12-9 16:55:17
楼主尝试用这种方法

[mw_shl_code=bash,true]--driver-class-path  /opt/gw-job/lib/jackson-core-2.5.4.jar[/mw_shl_code]

回复

使用道具 举报

mjjian0 发表于 2016-12-9 16:56:42
langke93 发表于 2016-12-9 16:55
楼主尝试用这种方法

[mw_shl_code=bash,true]--driver-class-path  /opt/gw-job/lib/jackson-core-2.5.4 ...

谢谢,麻烦可以再解释下  --driver-class-path  和--jars的区别吗?
谢啦
回复

使用道具 举报

nextuser 发表于 2016-12-9 17:26:19
建议把这些包都放到集群环境中,并且都配置环境变量。楼主肯定引用的不全吧。即使引用单纯的这个包,可能还依赖其它包,所以可能出现问题

回复

使用道具 举报

liuyuze_hanbing 发表于 2017-11-30 12:31:38
spark是先启动executor-》启动task-》添加--jars 和 主类所在的jar到classloader  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条