Я пытаюсь настроить автономный 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
, что означает, что это не проблема синтаксиса или разрешений.