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

5 篇文章 0 订阅
4 篇文章 0 订阅

springboot 整合spark ,运行在yarn,各种问题…

  • 最近需求需要这样做一个分析平台,之前做过整合,是在standalone模式了,想了解的,可以关注一下,往下滑动!
  • 先看下这个问题,之前没遇到过啊,为啥这次整合问题这么多,idea本地测试少量数据sparkSql,几十兆吧。
    sql代码
val livingSql =
      """
        | select
        |   count(imsi) livingCounts
        | from
        |   channelInfo c
        | inner join
        |   living l
        | on c.lac_id = l.lac_id and c.cell_id = l.cell_id
        |""".stripMargin
spark.sql(livingSql)

这还不至于出错吧。。。。。。。
但是稍微改一下把count(imsi) 改成 count(*) 就没问题,不能为了完成而完成啊,还是解决问题吧
问题:

2021-09-29 16:31:46.850 ERROR 20408 --- [ffle-client-9-2] o.a.s.network.client.TransportClient     : Failed to send RPC 6740351104424319093 to /172.19.2.221:63048: java.lang.AbstractMethodError: org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted;
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) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:785) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:701) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:112) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:791) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:701) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.handler.timeout.IdleStateHandler.write(IdleStateHandler.java:303) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext.access$1700(AbstractChannelHandlerContext.java:56) [netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1102) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1149) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1073) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-all-4.1.36.Final.jar:4.1.36.Final]
	at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121]

问题很明显,就是netty-all-4.1.36.Final.jar这个jar包,就是因为netty版本冲突导致的。我的spark版本2.2.0:

<dependency>
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-core_2.11</artifactId>
     <version>${spark.version}</version>
</dependency>

查一下看看pom文件的依赖吧,打开pom文件,ctrl+shift+alt+u ,放大
在这里插入图片描述
netty版本io.netty:netty:3.99.Final以及报错中的io.netty:netty-all:4.1.36.Final.jar;
看看我的spark-core的吧!
maven repository 进去之后找到spark-core 版本2.2.0,scala版本2.11,一直往下滑。。。。。。
在这里插入图片描述
我依赖和官方依赖的版本不一样啊,重新引入官方版本依赖,成功解决!!

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.0.43.Final</version>
</dependency>

还有很多坑。。。。。。还得继续写代码,调bug,就写到这儿吧,关注哦!! 后续分享其他问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值