Spark 2.3.0 netty version Problem: NoSuchMethod io.netty.Puffer.PooledByteBufAllocator.(Metrisch)
Ich gerade aktualisiert meine spark-Projekt von 2.2.1 auf 2.3.0 zu finden, die Versionierung Ausnahme unten. Ich habe Abhängigkeiten auf der Funke-cassandra-Anschluss.2.0.7 und cassandra-driver-Kern.3.4.0 von datastax, die wiederum Abhängigkeiten auf netty 4.x in der Erwägung, dass spark 2.3.0 nutzt 3.9.x.
Die Klasse die Anhebung der Ausnahme, org.apache.spark.Netzwerk.util.NettyMemoryMetrics, wurde in spark 2.3.0.
Ist eine Herabstufung meine Cassandra Abhängigkeiten der einzige Weg um die Ausnahme? Danke!
Exception in thread "main" java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.metric()Lio/netty/buffer/PooledByteBufAllocatorMetric;
at org.apache.spark.network.util.NettyMemoryMetrics.registerMetrics(NettyMemoryMetrics.java:80)
at org.apache.spark.network.util.NettyMemoryMetrics.<init>(NettyMemoryMetrics.java:76)
at org.apache.spark.network.client.TransportClientFactory.<init>(TransportClientFactory.java:109)
at org.apache.spark.network.TransportContext.createClientFactory(TransportContext.java:99)
at org.apache.spark.rpc.netty.NettyRpcEnv.<init>(NettyRpcEnv.scala:71)
at org.apache.spark.rpc.netty.NettyRpcEnvFactory.create(NettyRpcEnv.scala:461)
at org.apache.spark.rpc.RpcEnv$.create(RpcEnv.scala:57)
at org.apache.spark.SparkEnv$.create(SparkEnv.scala:249)
at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:175)
at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:256)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:423)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, wie Sie ein "zu alt" netty 4-version. Vielleicht haben Sie mehrere auf Ihrem classpath ? Es sollte kein problem zu haben, netty 4.x-und 3.x auf dem classpath.
Ich würde gerne ein paar mehr details zu der Antwort für einfache arbeiten, führen Sie einfach
mvn dependency:tree -Dverbose -Dincludes=io.netty:netty-all
wird es wieder alle Abhängigkeiten mitio.netty
und seine version. In meinem Fall ist der Täter war Hive-Jdbc-2.1.0 hat netty-all version niedriger als die version von spark 2.3.1 also der classpath unterlässt laden der Funke ist netty, da es bereits geladen wurde von der hive-jdbc.Also das Update ist auszuschließen, die Abhängigkeiten von der Hive-Jdbc in pom.xml