Loading...

org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/Referenc

–>

我使用IDEA进行spark sql调试的时候突然出现了这个问题,堆栈信息如下:
java.lang.AbstractMethodError: org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted; at io.netty.util.ReferenceCountUtil.touch(ReferenceCountUtil.java:77) at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:810) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:723) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738) … 16 more


主要原因不多说了,就是因为netty版本冲突导致的。我之前引用的netty 版本是io.netty:netty:3.99.Final以及io.netty:netty-all:4.1.43.Final.然后我spark的版本是
< dependency >
< groupId >org.apache.spark< /groupId >
< artifactId>spark-core_2.11< /artifactId >
< version>2.2.1< /version >
< /dependency >
这个,2.2.1版本的,肯定很多人想知道如何知道该版本的spark引用了哪些netty版本呢?
登录 http://mvnrepository.com/ 然后搜索spark 点开spark core ,然后选择合适的版本。
我的是2.2.1,scala是2.11的。然后打开往下滑,依赖如下所示。

明显发现,io.netty:netty-all:4.1.43.Final我依赖的于官方设定的io.netty:netty-all:4.0.43.Final不一样,所以我修改依赖,是我和官方的一致。

然后再idea中继续调试程序,OK。问题解决~

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章