Я новичок в Spark и Kafka, изучаю их сейчас. Я пытаюсь интегрировать Kafka со Spark, мне удалось выполнить программу через eclipse. Когда я попытался с помощью Spark Submit, я получил ошибку ниже:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/clients/consumer/Consumer
Мой контент сборки:
name := "spark_streaming"
version := "0.0.1"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.1.1",
"org.apache.spark" %% "spark-sql" % "2.1.1",
"org.apache.spark" %% "spark-mllib" % "2.1.1",
"org.apache.spark" %% "spark-hive" % "2.1.1",
"org.apache.spark" %% "spark-streaming" % "2.1.1" % "provided",
"org.apache.kafka" %% "kafka" % "0.11.0.0",
"org.apache.spark" %% "spark-streaming-kafka-0-10" % "2.1.1",
"org.apache.spark" %% "spark-sql-kafka-0-10" % "2.1.1",
"org.apache.kafka" % "kafka-clients" % "0.11.0.0",
"org.apache.spark" %% "spark-streaming-kafka-assembly" % "1.5.2"
)
Я не могу найти этот пакет в файле jar. Я смог увидеть класс в банках зависимостей. Могу я узнать, как вы решили эту проблему? Спасибо.
В моем случае я обнаружил, что jar поврежден, потому что "jar tvf <path-to-jar-file>" не работает. Итак, я просто перестроил банку, и тогда я смог увидеть класс, который изначально отсутствовал (NoClassDefFoundError). После этого моя программа заработала.





Не могли бы вы запустить команду "jar tvf <path-to-jar-file>" и проверить содержимое пакета и посмотреть, доступен ли класс Consumer или нет? Я столкнулся с аналогичной проблемой, и мой файл jar оказался поврежденным.