Я очень новичок в 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 работает нормально?