Как заставить spark сохранить свои временные файлы на S3? - PullRequest
0 голосов
/ 01 октября 2018

Я запускаю искровые задания в кластере AWS EMR, отправляя их с клиентского компьютера.Клиентский компьютер - это просто экземпляр EC2, который отправляет задания в EMR с пряжей в кластерном режиме.

Проблема в том, что spark сохраняет временные файлы размером 200 МБ, например:

/tmp/spark-456184c9-d59f-48f4-9b0560b7d310655/__spark_conf__6943938018805427428.zip

Папка Tmp очень быстро заполняется такими файлами, и я начинаю получать сбойные задания с ошибкой:

No space left on device

Я пытался настроить spark.local.dir в спарк-дефолтах.conf указывает на мой контейнер s3, но он добавляет префикс каталога пользователя к пути следующим образом: /home/username/s3a://my-bucket/spark-tmp-folder

Не могли бы вы подсказать, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 03 октября 2018
  • Я загрузил zip-архив __spark_conf__6943938018805427428.zip
    с помощью lib libs в корзину s3.
  • Затем я указал его в spark-defaults.conf в свойстве
    spark.yarn.archive s3a://mybucket/libs/spark_libs.zip вМой клиентский компьютер
    , который отправляет задания.
  • Теперь Spark загружает только конфиги в локальную папку tmp, которая занимает
    всего 170 КБ вместо 200 МБ.
...