Я использую maven
я добавил следующие зависимости
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>1.1.0</version>
</dependency> <dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka_2.10</artifactId>
<version>1.1.0</version>
</dependency>
Я также добавил банку в код
SparkConf sparkConf = new SparkConf().setAppName("KafkaSparkTest");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
sc.addJar("/home/test/.m2/repository/org/apache/spark/spark-streaming-kafka_2.10/1.0.2/spark-streaming-kafka_2.10-1.0.2.jar");
JavaStreamingContext jssc = new JavaStreamingContext(sc, new Duration(5000));
Он отлично работает без каких-либо ошибок, я получаю следующую ошибку, когда запускаю spark-submit, любая помощь очень приветствуется. Спасибо за ваше время.
bin/spark-submit --class "KafkaSparkStreaming" --master local[4] try/simple-project/target/simple-project-1.0.jar
Исключение в потоке «main» java.lang.NoClassDefFoundError: org / apache / spark / streaming / kafka / KafkaUtils в KafkaSparkStreaming.sparkStreamingTest (KafkaSparkStreaming.java:40) в KafkaSparkStreaming.mainark: NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethod.java.MethodAccessorImpl.invoke (DelegatingMethod.java.Invoke.Invoke (DelegatingMethod.java. java: 606) в org.apache.spark.deploy.SparkSubmit $ .launch (SparkSubmit.scala: 303) в org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 55) в org.apache.spark .deploy.SparkSubmit.main (SparkSubmit.scala) Вызвано: java.lang.ClassNotFoundException: org.apache.spark.streaming.kafka.KafkaUtils в java.net.URLClassLoader $ 1.run (URLClassLoader.java:366)