apache spark, не удалось создать локальный каталог

Я пытаюсь настроить Apache-Spark на небольшом автономном кластере (1 главный узел и 8 подчиненных узлов). Я установил «предустановленную» версию Spark 1.1.0, построенную поверх Hadoop 2.4. Я установил SSH без пароля между узлами и экспортировал несколько необходимых переменных среды. Одна из этих переменных (которая, вероятно, наиболее актуальна):

export SPARK_LOCAL_DIRS=/scratch/spark/

У меня есть небольшой фрагмент кода Python, который, как я знаю, работает со Spark. Я могу запустить его локально - на моем рабочем столе, а не в кластере - с помощью:

$SPARK_HOME/bin/spark-submit ~/My_code.py

Скопировал код в кластер. Затем я запускаю все процессы с головного узла:

$SPARK_HOME/sbin/start-all

И каждое из подчиненных устройств указано как запущенное как процесс xxxxx.

Если я затем попытаюсь запустить свой код с помощью той же команды выше:

$SPARK_HOME/bin/spark-submit ~/MY_code.py

Я получаю следующую ошибку:

14/10/27 14:19:02 ERROR util.Utils: Failed to create local root dir in /scratch/spark/.  Ignoring this directory.
14/10/27 14:19:02 ERROR storage.DiskBlockManager: Failed to create any local dir.

У меня есть разрешения, установленные для /scratch и /scratch/spark на 777. Любая помощь приветствуется.


person TravisJ    schedule 27.10.2014    source источник


Ответы (1)


Проблема заключалась в том, что я не понимал, что главному узлу также нужен рабочий каталог. На каждом из моих 8 рабочих узлов я создал каталог local / scratch / spark, но не сделал этого на главном узле. Добавление каталога устранило проблему.

person TravisJ    schedule 28.10.2014
comment
У меня также есть аналогичная проблема, у меня есть настройка Ambari. Не могли бы вы сообщить мне, как определить, какой из узлов является главным? - person Ravi Chandra; 21.06.2017