Spark Standalone, как передать локальный файл .jar в кластер - PullRequest
0 голосов
/ 13 марта 2020

У меня кластер с двумя работниками и одним мастером. Для запуска мастера и рабочих я использую sbin/start-master.sh и sbin/start-slaves.sh в машине мастера . Затем основной интерфейс показывает мне, что подчиненные устройства являются живыми (так что пока все в порядке). Проблема возникает, когда я хочу использовать spark-submit.

Я выполняю эту команду на моем локальном компьютере :

spark-submit --master spark://<master-ip>:7077 --deploy-mode cluster /home/user/example.jar

Но появляется следующая ошибка: ERROR ClientEndpoint: Exception from cluster was: java.nio.file.NoSuchFileException: /home/user/example.jar

Я провел некоторое исследование по переполнению стека и документации Spark, и мне кажется, что я должен указать команду application-jar из spark-submit как «Путь к пакетному банку, включая ваше приложение и все зависимости. URL должен быть виден глобально» внутри вашего кластера, например, путь hdfs: // или путь file: //, который присутствует на всех узлах. " (как указано https://spark.apache.org/docs/latest/submitting-applications.html).

У меня такой вопрос: как настроить мой .jar как глобально видимый внутри кластера? Здесь есть похожий вопрос Автономный кластер Spark не может читать файлы в локальной файловой системе но решения не работают для меня.

Кроме того, я делаю что-то не так, инициализируя кластер внутри машины моего мастера, используя sbin/start-master.sh, но затем выполняю spark-submit на моей локальной машине? Я инициализирую мастер в терминале моего мастера, потому что я прочитал об этом в документации Spark, но, возможно, это как-то связано с проблемой. Из документации Spark:

Once you’ve set up this file, you can launch or stop your cluster with the following shell scripts, based on Hadoop’s deploy scripts, and available in SPARK_HOME/sbin: [...] Note that these scripts must be executed on the machine you want to run the Spark master on, not your local machine.

Большое спасибо

РЕДАКТИРОВАТЬ: Я скопировал файл .jar на каждого работника, и он работает , Но я хочу знать, есть ли лучший способ, так как этот метод заставляет меня копировать .jar каждому работнику каждый раз, когда я создаю новый jar. (Это был один из ответов на вопрос по уже опубликованной ссылке Автономный кластер Spark не может прочитать файлы в локальной файловой системе )

...