Установите spark.local.dir на другой диск - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь настроить автономный Spark на Windows 10. Я хотел бы установить spark.local.dir на D:\spark-tmp\tmp, так как в настоящее время он использует C:\Users\<me>\AppData\Local\Temp, который в моем случае находится на SSD-накопителе, который можетнедостаточно места, учитывая размер некоторых наборов данных.

Поэтому я изменил файл %SPARK_HOME%\conf\spark-defaults.conf на следующий, но безуспешно

spark.eventLog.enabled           true
spark.eventLog.dir               file:/D:/spark-tmp/log
spark.local.dir                  file:/D:/spark-tmp/tmp

Я также попытался запустить %HADOOP_HOME\bin\winutils.exe chmod -R 777 D:/spark-tmp, ноэто ничего не изменило.

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

java.io.IOException: Failed to create a temp directory (under file:/D:/spark-tmp/tmp) after 10 attempts!

Если я начну путь с file://D:/... (обратите внимание на двойной слеш), ничего не изменится.Если я вообще удаляю схему, другое исключение говорит о том, что схема D: не распознается.

Я также заметил это предупреждение:

WARN  SparkConf:66 - In Spark 1.0 and later spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone and LOCAL_DIRS in YARN).

Поэтому я попытался поставить следующеестрока в %SPARK_HOME%\conf\spark-env.sh:

SPARK_LOCAL_DIRS=file:/D:/spark-tmp/tmp

Если я добавлю эту строку и прокомментирую строку spark.local.dir в файле .conf, Spark работает отлично, но временные файлы все еще сохраняются в моем AppData\Local\Tempпапка.Поэтому строка SPARK_LOCAL_DIRS не читается.

Странно то, что, если я ее запускаю, она фактически помещает журналы в D:/spark-tmp/log, что означает, что это не проблема синтаксиса или разрешений.

1 Ответ

0 голосов
/ 21 октября 2018

В Windows вы должны будете сделать эти переменные окружения

Добавить пару значений ключа

SPARK_LOCAL_DIRS -> d:\spark-tmp\tmp 

в переменные среды вашей системы

...