Spark не находит клиентскую программу через spark-submit - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь развернуть искровое задание в искровом кластере, и мне кажется, что возникла проблема с загрузкой классов.

Подробности ошибок, как показано ниже:

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

Благодарю за любую помощь.

1 Ответ

0 голосов
/ 02 июня 2019

Поскольку код доступен является частью jar, мы можем загрузить jar в hdfs или maven repo и использовать любой из следующих параметров.
* - jars / spark.jars -мы можем указать путь к банкам, загруженным в HDFS.
* - packages / spark.jars.packages - мы можем указать координаты maven, если сможем загрузить банку врепозиторий maven (также необходимо указать учетные данные Spark для репозитория maven)

...