Расширение каталога не работает в автономном режиме развертывания: Apache Spark - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь развернуть тематическое задание Kafka, использующее потоковую обработку искр, на автономном кластере искр с помощью следующей команды:

./bin/spark-submit --class MaxwellCdc.MaxwellSreaming
~/cdc/cdc_2.11-0.1.jar --jars ~/cdc/kafka_2.11-0.10.0.1.jar,
~/cdc/kafka-clients-0.10.0.1.jar,~/cdc/mysql-connector-java-5.1.12.jar,
~/cdc/spark-streaming-kafka-0-10_2.11-2.2.1.jar 

и получаю это исключение:

Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/kafka/common/serialization/StringDeserializer
at MaxwellCdc.MaxwellSreaming$.main(MaxwellSreaming.scala:30)
at MaxwellCdc.MaxwellSreaming.main(MaxwellSreaming.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException:
org.apache.kafka.common.serialization.StringDeserializer
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Любойбыла бы признательна за помощь.

1 Ответ

0 голосов
/ 29 мая 2018

Цитирование из документации:

При использовании spark-submit, jar приложения вместе со всеми jar-файлами, включенными в опцию --jars, будет автоматически перенесен в кластер.URL, указанные после --jars, должны быть разделены запятыми.Этот список включен в пути к классам драйвера и исполнителя. Расширение каталога не работает с --jars. .

Что такое расширение каталога?

Расширение имени файла означает преобразованиеотносительное имя файла к абсолютному.Поскольку это делается относительно каталога по умолчанию, вы должны указать имя каталога по умолчанию, а также имя файла, который нужно развернуть. Это также включает расширение сокращений, таких как ~ / .

Поэтому попробуйте указать абсолютный путь для всех банок, которые предоставляются с опцией --jars.Надеюсь, это поможет.

...