使用spark读取kafka分析的时候,kafka 的startingOffsets如果设置为earliest,就会报错:
java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream;Z)V
使用mvn -Dverbose dependency:tree检查发现,是spark和kafka-client中都包含了lz4包,但是spark中的版本是1.4,但是kafak-client中lz4版本是1.3,所以会发生冲突,把kafka-client的lz4 exclusion掉就可以。如下:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
<scope>${scope.mode}</scope>
<exclusions>
<exclusion>
<groupId>net.jpountz.lz4</groupId>
<artifactId>lz4</artifactId>
</exclusion>
</exclusions>
博客讲述使用Spark读取Kafka分析时,若Kafka的startingOffsets设为earliest会报错。经检查,是Spark和Kafka - client中都有lz4包且版本不同(Spark为1.4,Kafka - client为1.3)导致冲突,解决办法是将Kafka - client的lz4 exclusion掉。
2950

被折叠的 条评论
为什么被折叠?



