我在spark工作中使用redis客户端并获得异常
java.lang.NoSuchMethodError:io.netty.bootstrap.Bootstrap.config()Lio / netty / bootstrap / BootstrapConfig; at org.redisson.client.RedisClient $ 1 $ 1.operationComplete(RedisClient.java:234)
由于网络版本不匹配
Spark使用netty版本netty-buffer = netty-buffer-4.0.23但redis需要4.1,是否可以在spark-submit命令中覆盖驱动程序和执行程序的netty jar。
答案 0 :(得分:0)
这取决于您组装项目的方式。
基本上我们使用maven-shade-plugin
或maven-assembly-plugin
创建一个包含所有依赖项的胖jar。因此,要避免此问题,您可以在shade插件配置中指定重定位。它看起来像这样:
<relocations>
<relocation>
<pattern>io.netty</pattern>
<shadedPattern>your.prefix.io.netty</shadedPattern>
</relocation>
</relocations>