Saya sangat baru di Spark dan saya mengikuti dokumen ini untuk mengirimkan pekerjaan Spark melalui Livy https://docs.microsoft.com/en-us/azure/hdinsight/spark/apache-spark-livy-rest-interface
Inilah perintah saya:
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"
File test4sparkhaha.jar adalah aplikasi Java super sederhana, hanya berisi satu kelas, dan hanya ada metode utama yang mencetak "hahaha", tidak ada yang lain... Saya mengekspor proyek di Eclipse ke Runnable Jar dan saya mencoba menjalankannya di cluster percikan saya menggunakan Java -jar dan Spark-submit. Keduanya bekerja dengan baik. Kemudian saya mulai mencoba mengirimkan pekerjaan melalui Livy dan selalu gagal, saya menemukan kesalahan di bawah ini di log Benang:
19/11/06 14:36:06 ERROR ApplicationMaster: Pengecualian tidak tertangkap: java.lang.IllegalStateException: Pengguna tidak menginisialisasi konteks percikan! di org.apache.spark.deploy.yarn.ApplicationMaster.runDriver(ApplicationMaster.scala:510) di org.apache.spark.deploy.yarn.ApplicationMaster.org$apache$spark$deploy$yarn$ApplicationMaster$$runImpl(ApplicationMaster .scala:345) di org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$2.apply$mcV$sp(ApplicationMaster.scala:260) di org.apache.spark.deploy.yarn.ApplicationMaster$$ anonfun$run$2.apply(ApplicationMaster.scala:260) di org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$2.apply(ApplicationMaster.scala:260) di org.apache.spark.deploy.yarn .ApplicationMaster$$anon$5.run(ApplicationMaster.scala:815) di java.security.AccessController.doPrivileged(Metode Asli) di javax.security.auth.Subject.doAs(Subject.java:422) di org.apache.hadoop .security.UserGroupInformation.doAs(UserGroupInformation.java:1869) di org.apache.spark.deploy.yarn.ApplicationMaster.doAsUser(ApplicationMaster.scala:814) di org.apache.spark.deploy.yarn.ApplicationMaster.run(ApplicationMaster .scala:259) di org.apache.spark.deploy.yarn.ApplicationMaster$.main(ApplicationMaster.scala:839) di org.apache.spark.deploy.yarn.ApplicationMaster.main(ApplicationMaster.scala)
Inilah perintah Spark-submit yang saya coba:
spark-submit --class helloworld4spark.test test4sparkhaha.jar
Ini bekerja dengan sempurna...
Bisakah kalian membantu saya memahami mengapa ini memberikan kesalahan saat Spark-submit berfungsi dengan baik?