Как работает управление памятью в Spark? И как я могу вручную управлять памятью в Spark? - PullRequest
0 голосов
/ 15 января 2020

Я читал об управлении памятью в spark и не смог найти ответы на некоторые вопросы. Некоторые утверждения, по-видимому, недостаточно ясны, поэтому вот мои вопросы:

Spark автоматически отслеживает использование кэша на каждом узле и отбрасывает старые разделы данных с наименьшим количеством использований (LRU). Если вы хотите удалить RDD вручную, а не ждать, пока он выпадет из кэша, используйте метод RDD.unpersist ().

source: https://spark.apache.org/docs/latest/rdd-programming-guide.html#removing -data

Вопрос 1. Правильно ли это утверждение для кэшированных / сохраняемых и не кэшированных разделов бота?

Вопрос 2. Эта очистка выполняется на уровне раздела или в RDD / Data Frame (DF) уровень? Можем ли мы частично удалить RDD / DF? Итак, что за логика c позади?

Вопрос 3: Как часто проводится эта чистка? Дождется ли спарк, пока память не заполнится, или мы можем установить порог памяти для каждого работника / исполнителя, чтобы при достижении этого порога использования памяти очистка выполнялась в режиме LRU?

Вопрос 4. Является ли метод unpersist () применимо только для кэшированных / постоянных RDD / DF или же может использоваться также для некэшированных промежуточных RDD / DF? Можно ли принудительно удалить временные СДР с помощью этого метода? Если нет, то как я могу принудительно удалить временные RDD / DFs?

Вопрос 5. Останавливает ли unpersist () основной поток, как это делает G C?

Вопрос 6: Автоматизирован ли c удаление разделов искрой относится к сборке мусора каким-либо образом? Что, в свою очередь, приводит к остановке основного потока?

Чтобы ответить на ваш вопрос, когда какое-либо действие инициируется на СДР и если это действие не может найти память, оно может удалить некэшированные / незарегистрированные СДР.

источник: { ссылка }

Вопрос 7: Как это происходит? RDD / разделы отбрасываются до тех пор, пока не будет достаточно места для нового RDD / DF в виде LRU? Возможно ли все еще не иметь достаточно свободного места в ОЗУ, поэтому каждый раз данные пересчитываются или передаются на DISK?

Ваши ответы очень ценятся. Приветствия ...

...