Исключение ClassNotFound в коде Spark Scala

Я использовал проект maven в Scala. Я использовал все зависимости в pom.

Тем не менее я получаю ClassNotFoundException, когда запускаю команду spark-submit.

clean compile assembly:single - это цель Maven, которую я использовал.

Ниже приведена команда отправки искры, которую я использовал.

spark-submit --class com.SimpleScalaApp.SimpleApp --master local /location/file.jar

person Sachit Murarka    schedule 09.03.2018    source источник
comment
Вы видите файл класса внутри JAR? jar tvf /location/file.jar   -  person philantrovert    schedule 09.03.2018
comment
@philantrovert, я проверяю это. Я прав с точки зрения цели maven, которую я указал. Здесь я использую искровой коннектор hbase и искровые зависимости.   -  person Sachit Murarka    schedule 09.03.2018
comment
Думаю, assembly:single даст вам толстую банку. Если это то, чего ты хочешь, то ты молодец.   -  person philantrovert    schedule 09.03.2018
comment
Да. Когда мы используем некоторые зависимости, мы должны сделать толстую банку. Это так?   -  person Sachit Murarka    schedule 09.03.2018
comment
Смотря как. Если зависимости доступны в пути к классам во время выполнения, то их нет. Если нет, добавьте его в банку вашего проекта (путем создания дальней банки).   -  person philantrovert    schedule 09.03.2018
comment
Я попробовал эту команду tar tvf , она выполнила некоторую обработку. Но я не мог видеть папки или файлы, созданные в этом месте.   -  person Sachit Murarka    schedule 09.03.2018
comment
@philantrovert Я изменил расширение jar на zip, внутри папки scala я не вижу файл SimpleApp.class   -  person Sachit Murarka    schedule 09.03.2018
comment
Ваш код не компилируется. Пожалуйста, используйте компилятор Scala в вашем pom.xml   -  person philantrovert    schedule 09.03.2018
comment
Как я могу это сделать?   -  person Sachit Murarka    schedule 09.03.2018
comment
Начните здесь: stackoverflow.com/questions/42354934/ Продолжайте гуглить.   -  person philantrovert    schedule 09.03.2018
comment
Не могли бы вы сказать, где я увижу файл класса и как будет называться файл класса?   -  person Sachit Murarka    schedule 09.03.2018
comment
Согласно приведенной выше ссылке: я использовал эти зависимости: ‹properties› ‹project.build.sourceEncoding›UTF-8‹/project.build.sourceEncoding› ‹maven.compiler.source›1.6‹/maven.compiler.source› ‹ maven.compiler.target›1.6‹/maven.compiler.target› ‹кодировка›UTF-8‹/кодировка› ‹scala.version›2.11.5‹/scala.version› ‹scala.compat.version›2.11‹/scala .compat.version› ‹/properties› ‹dependency› ‹groupId›org.scala-lang‹/groupId› ‹artifactId›scala-library‹/artifactId› ‹version›2.10.4‹/version› ‹/dependency› вместе с искровые зависимости ядра. Тем не менее это не работает   -  person Sachit Murarka    schedule 09.03.2018


Ответы (1)


К сожалению, на мой взгляд, нет полезного комментария по этому вопросу. Исключение ClassNotFoundException в основном возникает, когда версии ваших зависимостей не совпадают.

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

Краткое описание лучшей практики запуска программы на искровом кластере — использование затененной формы или формы сборки сборки.

person Amin Heydari Alashti    schedule 09.03.2018
comment
Эти комментарии были полезны @epcpu. Решение сработало. - person Sachit Murarka; 10.03.2018