Я пытаюсь изменить местоположение искры, записывает временные файлы в. Все, что я нашел в Интернете, говорит об установке этого параметра, установив параметр SPARK_LOCAL_DIRS
в файле spark-env.sh
, но мне не повезло с изменениями, которые действительно вступили в силу.
Вот что я сделал:
- Создан тестовый кластер для 2 рабочих с использованием экземпляров Amazon EC2. Я использую spark 2.2.0 и пакет R
sparklyr
в качестве внешнего интерфейса. Рабочие узлы запускаются с использованием группы автоматического масштабирования.
- Создан каталог для хранения временных файлов в
/tmp/jaytest
. Есть один из них в каждом работнике и один в мастере.
- Поместил в мастер-искру и двух рабочих, перешел к
home/ubuntu/spark-2.2.0-bin-hadoop2.7/conf/spark-env.sh
и изменил файл так, чтобы он содержал эту строку: SPARK_LOCAL_DIRS="/tmp/jaytest"
Разрешения для каждого из файлов spark-env.sh
равны -rwxr-xr-x
, а для папок jaytest - drwxrwxr-x
.
Насколько я могу судить, это соответствует всем советам, которые я прочитал в Интернете. Однако, когда я загружаю некоторые данные в кластер, они все равно оказываются в /tmp
, а не /tmp/jaytest
.
Я также пытался установить параметр spark.local.dir
в том же каталоге, но тоже не повезло.
Может кто-нибудь подсказать, что мне здесь не хватает?
Редактировать: я запускаю это как отдельный кластер (так как ответ ниже указывает, что правильный параметр для установки зависит от типа кластера).