Ответ 1
Чтобы удалить все кэшированные данные:
sqlContext.clearCache()
Источник: https://spark.apache.org/docs/2.0.1/api/java/org/apache/spark/sql/SQLContext.html
когда я запускаю свои акустические запросы, память накапливается в основной памяти Это мой результат верхней команды.
Mem: 74237344k всего, 70080492k б/у, 4156852k бесплатно, 399544k буферы Обмен: 4194288k всего, 480k используется, 4193808k бесплатно, 65965904k кэш
это не меняется, даже если я убиваю/останавливаю акулу, искру, хаоп-процессы. Прямо сейчас единственный способ очистить кеш - перезагрузить компьютер.
Кто-нибудь сталкивался с этой проблемой раньше? это какая-то проблема с конфигурацией или известная проблема в искрах/акулах?
Чтобы удалить все кэшированные данные:
sqlContext.clearCache()
Источник: https://spark.apache.org/docs/2.0.1/api/java/org/apache/spark/sql/SQLContext.html
Используете ли вы метод cache()
для сохранения RDD?
cache()
просто вызывает persist()
, поэтому для удаления кеша для RDD вызовите unpersist()
.
Я следовал за этим, и он работал нормально для меня:
for ((k,v) <- sc.getPersistentRDDs) {
v.unpersist()
}
sc.getPersistentRDDs - это карта, которая хранит детали кэшированных данных.
scala> sc.getPersistentRDDs
res48: scala.collection.Map [Int, org.apache.spark.rdd.RDD [_]] = Map()
Это странно Заданные вопросы не имеют ничего общего с ответами. Размещенный ОП кеша принадлежит операционной системе и не имеет ничего общего с искрой. Это оптимизация ОС, и мы не должны беспокоиться об этом конкретном кеше.
И искровой кеш обычно находится в памяти, но это будет в разделе RSS, а не в разделе кеша ОС.