Spark (режим клиента пряжи) не освобождает память после завершения задания / этапа - PullRequest
0 голосов
/ 12 сентября 2018

Мы постоянно наблюдаем это поведение с помощью интерактивных заданий зажигания в Sparklyr или запуска Sparklyr в RStudio и т. Д.

Скажем, я запустил spark-shell в режиме yarn-client и выполнил действие, которое запустило несколько этапов в работе и потребило x ядер и y МБ памяти. Как только это задание завершается и соответствующий сеанс зажигания все еще активен, выделенные ядра и память не освобождаются, даже если это задание завершено. Это нормальное поведение?

До завершения соответствующего сеанса зажигания ip: 8088 / ws / v1 / cluster / apps / application_1536663543320_0040 / продолжал показывать: Y Икс г

Я бы предположил, что Yarn будет динамически распределять эти неиспользуемые ресурсы для других искровых заданий, ожидающих ресурсов. Пожалуйста, уточните, если я что-то здесь упускаю.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вам нужно поиграть с конфигами вокруг динамического выделения https://spark.apache.org/docs/latest/configuration.html#dynamic-allocation -

  1. Установите для spark.dynamicAllocation.executorIdleTimeout меньшее значение, скажем, 10 с.Значение по умолчанию для этого параметра - 60 с.Этот конфиг сообщает искру, что он должен освободить исполнителя только тогда, когда он простаивает в течение этого времени.
  2. Проверка spark.dynamicAllocation.initialExecutors / spark.dynamicAllocation.minExecutors.Установите их на небольшое число - скажем, 1/2.Приложение spark никогда не будет уменьшено ниже этого числа, если SparkSession не будет закрыт.

После того, как вы установите эти две конфигурации, ваше приложение должно освободить дополнительных исполнителей, когда они простаивают в течение 10 секунд.

0 голосов
/ 12 сентября 2018

Да, ресурсы распределяются до тех пор, пока SparkSession не станет активным.Чтобы справиться с этим лучше, вы можете использовать динамическое распределение.

https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-dynamic-allocation.html

...