Зависимость SQL Server не найдена - PullRequest
0 голосов
/ 04 июня 2018

Я упаковал приложение в jar-файл, используя для этого sbt.Когда я запускаю приложение из IDE (IntelliJ), оно работает без проблем.Однако, когда я пытаюсь запустить jar-файл напрямую, у меня возникают 2 проблемы:

Когда я запускаю его из spark-submit, я получаю:

[cloudera@quickstart bin]$ spark-submit --class com.my.app.main --master local[0] /home/cloudera/Projects/myapp/target/scala-2.11/myapp.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/sqlserver/jdbc/SQLServerDataSource

Когда я запускаю его из Java, я получаю:

[cloudera@quickstart scala-2.11]$ java -jar myapp.jar
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq
    at com.my.app.main$.main(main.scala:13)
    at com.my.app.main.main(main.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

Обратите внимание, что JDBC для SQL Server уже находится в папке lib, где он должен автоматически распознаваться sbt, когда онсоздает пакет.

Любая помощь будет очень признателен.

Спасибо.

РЕДАКТИРОВАТЬ: мой вопрос не ответил на этот пост

1 Ответ

0 голосов
/ 26 марта 2019

взято из https://stackoverflow.com/a/52546145/1498109

я бы изменил для вашего случая:

   spark-submit --class com.my.app.main \
   --master local[0] /home/cloudera/Projects/myapp/target/scala-2.11/myapp.jar \
   --jars path_to/sqljdbc42.jar

этот работает для меня, загрузите jdbc jar с официального сайта Microsoft.

...