Нет такого файла или каталога в режиме искрового кластера

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

Краткий обзор упаковки: это приложение содержит несколько модулей и некоторые файлы конфигурации, которые не являются файлами .py (например, .yaml или .json).

Я упаковываю все это приложение в файл package.zip и отправляю этот package.zip в Spark.

Теперь проблема в том, что я запускаю команду spark-submit в режиме кластера пряжи. Я получаю IOError. Ниже - трассировка стека

 Traceback (most recent call last):
   File "main/main.py", line 10, in <module>
     import logger.logger
   File "package.zip/logger/logger.py", line 36, in get_logger
   IOError: [Errno 2] No such file or directory: 'logger/config.yaml'

Spark-Command: spark-submit --master yarn-cluster --py-files package.zip main / main.py

Но когда я отправляю задание в режиме пряжи-клиента, приложение работает так, как ожидалось.

Мое понимание:

  1. Когда я отправляю задание в клиентском режиме, искровый драйвер запускается на том же компьютере, на котором я отправил команду. И пакет распространяется по всем узлам.
  2. И когда я запускаю команду в кластерном режиме, и драйвер искры, и мастер приложения работают на одном узле (который не является клиентом, отправившим код), и все же пакет распространяется на все узлы в кластере.

В обоих случаях package.zip доступен для всех узлов, тогда почему загружаются только файлы py, а файлы, отличные от py, не загружаются в режиме кластера.

Может ли кто-нибудь помочь мне разобраться в ситуации и решить проблему?

Обновлено -

Наблюдения

В режиме клиента. Заархивированный пакет распаковывается по пути, по которому выполняется сценарий драйвера. Где, как в режиме кластера, zip-пакет используется для всех узлов, но не разархивирован. Здесь мне нужно распаковать пакет во всех узлах? Есть ли способ указать Spark разархивировать пакет в рабочем узле?


person Rakesh SKadam    schedule 03.06.2018    source источник


Ответы (1)


Вы можете передать дополнительные файлы с опцией --files.

https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-submit.html

person user10427234    schedule 28.09.2018
comment
Хотя ссылка может решить проблему, лучше предоставить подробности здесь, а не просто ссылку. - person Karthick Ramesh; 28.09.2018
comment
@KarthickRamesh прав, потому что этой ссылки больше не существует! - person KCK; 16.03.2021