Ошибка при использовании Livy для отправки заданий Spark: пользователь не инициализировал контекст Spark - PullRequest
0 голосов
/ 06 ноября 2019

Я очень новичок в Spark и следую этому документу, чтобы отправить задания Spark через Livy https://docs.microsoft.com/en-us/azure/hdinsight/spark/apache-spark-livy-rest-interface

Вот моя команда:

curl -k --user "username:password!" -v -H "Content-Type: application/json" -X POST -d '{ "file":"/test4spark/test4sparkhaha.jar", "className":"helloworld4spark.test" }' "https://xxx.azurehdinsight.net/livy/batches" -H "X-Requested-By: username"

Файл test4sparkhaha.jar является файломсупер простое Java-приложение, оно содержит только один класс, и есть только основной метод, который печатает «хахаха», ничего больше ... Я экспортировал проект в Eclipse в Runnable Jar и попытался запустить его на своем кластере искр, используя Java -jar и Spark-submit . Оба работали хорошо. Затем я попытался отправить задание через Livy, и это всегда не удавалось. Я обнаружил следующие ошибки в журналах пряжи:

19/11/06 14:36:06 ОШИБКА ApplicationMaster: необработанное исключение: java.lang.IllegalStateException: Пользователь не инициализировал искровой контекст! в org.apache.spark.deploy.yarn.ApplicationMaster.runDriver (ApplicationMaster.scala: 510) в org.apache.spark.deploy.yarn.ApplicationMaster.org $ apache $ spark $ deploy $ yarn $ ApplicationMaster $$ runImpl (ApplicationMaster.scala: 345) в org.apache.spark.deploy.yarn.ApplicationMaster $$ anonfun $ run $ 2.apply $ mcV $ sp (ApplicationMaster.scala: 260) в org.apache.spark.deploy.yarn.ApplicationMaster $$anonfun $ run $ 2.apply (ApplicationMaster.scala: 260) в org.apache.spark.deploy.yarn.ApplicationMaster $$ anonfun $ run $ 2.apply (ApplicationMaster.scala: 260) в org.apache.spark.deploy.yarn.ApplicationMaster $$ anon $ 5.run (ApplicationMaster.scala: 815) в java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:422) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1869) при org.apache.spark.deploy.yarn.ApplicationMaster.doAsUser (ApplicationMaster.scala: 814) в org.apache.spark.deploy.yarn.ApplicationMaster.run (ApplicationMaster.scala: 259) вorg.apache.spark.deploy.yarn.ApplicationMaster $ .main (ApplicationMaster.scala: 839) в org.apache.spark.deploy.yarn.ApplicationMaster.main (ApplicationMaster.scala)

Вот Spark-submit команда, которую я пытался:

spark-submit --class helloworld4spark.test test4sparkhaha.jar

Она отлично работает ...

Не могли бы вы, ребята, помогите мне понять, почему выдает ошибку, в то время как Spark-submit работает нормально?

1 Ответ

1 голос
/ 06 ноября 2019

Я полагаю, вы пытаетесь отправить локальный файл .jar с Livy. Для spark-submit это работает (отправка работы в Yarn поддерживает это), но для сервера Livy это не так.

Чтобы это работало, вам нужно загрузить свой jar-файл в hdfs / wasbs / adls / http availableместоположение (убедитесь, что ваш Spark настроен для доступа к этому местоположению).

Пожалуйста, обратитесь к первому абзацу этого руководства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...