У меня есть кластер с двумя рабочими и одним мастером. Чтобы запустить мастер и рабочие, я использую 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
of 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.
Большое тебе спасибо
EDIT: я скопировал файл .jar в каждый воркер, и он работает. Но я хочу знать, есть ли лучший способ, поскольку этот метод заставляет меня копировать .jar каждому рабочему процессу каждый раз, когда я создаю новую банку. (Это был один из ответов на вопрос уже размещенной ссылки Автономный кластер Spark не может прочитать файлы в локальной файловой системе )
--jars example.jar
при запускеspark-submit
? - person Oli   schedule 13.03.2020--jars example.jar
после всей команды, которую я написал выше, она все равно выдает ту же ошибку (NoSuchFileException). В то время как если я не укажу указанный выше путь и напишу вместо него--jars example.jar
или--jars /home/user/example.jar
, это выдаст мне ошибку:Missing application resource
. - person meisan   schedule 13.03.2020spark-submit
выдает ошибкуMissing application resource.
(и предлагает варианты, доступные сspark-submit
) - person meisan   schedule 16.03.2020