Я новичок в 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, и это всегда терпело неудачу, я обнаружил следующие ошибки в журналах Yarn:
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 работает нормально?