Как заставить акулу/искра очистить кеш?

когда я запускаю свои акустические запросы, память накапливается в основной памяти Это мой результат верхней команды.


Mem: 74237344k всего, 70080492k б/у, 4156852k бесплатно, 399544k буферы Обмен: 4194288k всего, 480k используется, 4193808k бесплатно, 65965904k кэш


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

Кто-нибудь сталкивался с этой проблемой раньше? это какая-то проблема с конфигурацией или известная проблема в искрах/акулах?

Ответ 2

Используете ли вы метод cache() для сохранения RDD?

cache() просто вызывает persist(), поэтому для удаления кеша для RDD вызовите unpersist().

Ответ 3

Я следовал за этим, и он работал нормально для меня:

for ((k,v) <- sc.getPersistentRDDs) {
   v.unpersist()
}

sc.getPersistentRDDs - это карта, которая хранит детали кэшированных данных.

scala> sc.getPersistentRDDs

res48: scala.collection.Map [Int, org.apache.spark.rdd.RDD [_]] = Map()

Ответ 4

Это странно Заданные вопросы не имеют ничего общего с ответами. Размещенный ОП кеша принадлежит операционной системе и не имеет ничего общего с искрой. Это оптимизация ОС, и мы не должны беспокоиться об этом конкретном кеше.

И искровой кеш обычно находится в памяти, но это будет в разделе RSS, а не в разделе кеша ОС.