I am developing a Spark application that listens to a Kafka stream using Spark and Java.
I use kafka_2.10-0.10.2.1.
I have set various parameters for Kafka properties: bootstrap.servers
, key.deserializer
, value.deserializer
, etc.
My application compiles fine, but when I submit it, it fails with the following error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/StringDeserializer
I do use StringDeserializer
for key.deserializer
and value.deserializer
so it's indeed related to how I wrote my application.
Various maven dependencies used in pom.xml
:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
<version>2.1.1</version>
</dependency>
I have tried updating the version of spark streaming/kafka. I could not find much anywhere.