Я пытаюсь развернуть искровое задание в искровом кластере, и мне кажется, что возникла проблема с загрузкой классов.
Подробности ошибок, как показано ниже:
java.lang.ClassNotFoundException: org.examples.datasets.FlightDataProcessor
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.spark.util.Utils$.classForName(Utils.scala:238)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:810)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
19/06/02 06:26:11 INFO ShutdownHookManager: Shutdown hook called
В настоящее время мне нужно скопировать jar-файлы приложения в папку spark jars
как часть сценария развертывания, чтобы решить эту проблему.
Но я считаю, что драйвер spark-submit
должен был сделать это разумно, так как каждый раз, когда я хочу развернуть какое-то искровое задание, мне нужно копировать все клиентские программы в jars
, это совсем не удобно
Информация об окружающей среде:
Версия Spark: 2.11-2.4.3
Версия Scala: 2.11.8
Вот ссылка на мой исходный код:
Сценарий развертывания
https://github.com/anhtv08/spark-cassandra-example/blob/master/scripts/submit_spark_flight_job.sh
Код задания искры
https://github.com/anhtv08/spark-cassandra-example/blob/master/src/main/scala/org/examples/datasets/FlightDataProcessor.scala
Благодарю за любую помощь.