Spark JobServer ERROR classnotfoundException

Я пробовал искру, используя искровую оболочку. Все мои данные в sql.

  I used to include external jars using the --jars flag like /bin/spark-shell --jars /path/to/mysql-connector-java-5.1.23-bin.jar --master spark://sparkmaster.com:7077

  I have included it in class path by changing  the bin/compute-classpath.sh file 
  I was running succesfully with this config. 

Теперь, когда я запускаю автономную работу через jobserver. Я получаю следующее сообщение об ошибке

result: {
    "message" : "com.mysql.jdbc.Driver"
    "errorClass" : "java.lang.classNotFoundException"
    "stack" :[.......]
}

Я включил файл jar в свой файл local.conf, как показано ниже. context-settings{ ..... зависимый-jar-uris = ["file:///absolute/path/to/the/jarfile"] ...... }


person user3892050    schedule 31.03.2015    source источник


Ответы (3)


Все ваши зависимости должны быть включены в ваш spark-jobserver JAR-файл приложения (например, создать "uber-jar") или быть включены в путь к классам исполнителей Spark. Я рекомендую настроить путь к классам, так как он быстрее и требует меньше места на диске, поскольку зависимости сторонних библиотек не нужно копировать каждому рабочему процессу всякий раз, когда ваше приложение запускается.

Вот шаги по настройке рабочего (исполнительного) пути к классам в Spark 1.3.1:

  1. Скопируйте сторонние JAR-файлы в каждый из ваших рабочих процессов Spark и мастер Spark.
  2. Поместите JAR(ы) в один и тот же каталог на каждом хосте (например, /home/ec2-user/lib
  3. Добавьте следующую строку в файл Spark /root/spark/conf/spark-defaults.conf на мастере Spark:

    spark.executor.extraClassPath /root/ephemeral-hdfs/conf:/home/ec2-user/lib/name-of-your-jar-file.jar

    Вот пример моих собственных модификаций для использования библиотеки Stanford NLP:

    spark.executor.extraClassPath /root/ephemeral-hdfs/conf:/home/ec2-user/lib/stanford-corenlp-3.4.1.jar:/home/ec2-user/lib/stanford-corenlp-3.4.1-models.jar

person Scott Kidder    schedule 09.08.2015

Возможно, у вас нет /path/to/mysql-connector-java-5.1.23-bin.jar в ваших воркерах.
Вы можете либо скопировать требуемую зависимость во все искровые воркеры, либо Bundle the submitting jar with required dependencies.
Я использую maven для сборки jar. Область зависимостей должна быть во время выполнения.

person Jishnu Prathap    schedule 22.04.2015

curl --data-binary @/PATH/jobs_jar_2.10-1.0.jar 192.168.0.115:8090/jars/job_to_be_registered

Для публикации jar зависимостей

curl -d "" 'http://192.168.0.115:8090/contexts/new_context?dependent-jar-uris=file:///path/dependent.jar'

Это работает для сервера заданий 1.6.1

person snow04    schedule 19.10.2016