Кэшированные RDD (всего 8) невелики, всего около 30 ГБ, однако в пользовательском интерфейсе Hadoop это показывает, что приложение Spark занимает много памяти (активные задания не выполняются), т.е. 1,4T, почему так много?
Почему он показывает около 100 исполнителей (здесь, то есть vCore), даже когда нет активных заданий?
Кроме того, если кэшированные RDD хранятся у 100 исполнителей, сохраняются ли эти исполнители, и никакие другие приложения Spark больше не могут использовать их для выполнения задач? Перефразируя вопрос: будет ли сохранение небольшого ресурса памяти (.cache
) в исполнителях препятствовать тому, чтобы другое приложение Spark использовало их простаивающие вычислительные ресурсы?
Есть ли какая-нибудь потенциальная конфигурация Spark config / zeppelin, которая может вызвать это явление?
ОБНОВЛЕНИЕ 1
После проверки Spark conf (zeppelin) кажется, что есть настройка по умолчанию (настроенная администратором по умолчанию) для spark.executor.memory=10G
, что, вероятно, является причиной.
Однако здесь возникает новый вопрос: можно ли сохранить только память, необходимую для кэшированных RDD в каждом исполнителе, и освободить остальные вместо того, чтобы всегда хранить изначально установленную память spark.executor.memory=10G
?
Конфигурация Spark
spark.executor.memory
более низкое значение. - person mck   schedule 22.12.2020spark.executor.memory
, и я предполагаю, что приложение будет занимать память любого размера, которая ему нужна, что нормально для кластера (поскольку у нас есть этот ресурс), но после завершения я бы хотел, чтобы оно освободило занятый ресурс, который был использован. Поэтому я не хочу ограничиватьspark.executor.memory
, поскольку нет смысла ограничивать, если это необходимо при выполнении заданий, но освобождение после его завершения - это абсолютно желательно. На самом деле хочу знать, как добиться .. - person jack   schedule 22.12.2020cache
d RDD для интерактивной аналитики, поэтому яcache
, чтобы избежать повторных вычислений. Но я бы хотел, чтобы Spark сохранял только память, используемую для кеширования после завершения вычислений, и позволял всем остальным уйти, не будучи жадным - я думаю, это то, с чем Spark должен быть в состоянии справиться, не так ли? - person jack   schedule 22.12.2020