2014-11-11 3 views
8

Spark кэширует рабочий набор данных в память, а затем выполняет вычисления со скоростью памяти. Есть ли способ контролировать, как долго рабочий набор находится в ОЗУ?Apache spark в кешировании памяти

У меня есть огромное количество данных, доступ к которым осуществляется через задание. Требуется время для загрузки задания изначально в ОЗУ, и когда придет следующее задание, он должен снова загрузить все данные в ОЗУ, которая требует много времени. Есть ли способ кэшировать данные навсегда (или определенное время) в ОЗУ с помощью Spark?

ответ

9

Для uncache явно, вы можете использовать RDD.unpersist()

Если вы хотите поделиться кэшированным РДОМ на нескольких рабочих местах, вы можете попробовать следующее:

  1. Кэш RDD с использованием одного и того же контекста и повторного использования контекста для других заданий. Таким образом, вы только кешируете один раз и используете его много раз
  2. Существуют «серверы искры», которые существуют для выполнения вышеупомянутых функций. Оформить заказ Spark Job Server открытый источник Ooyala.
  3. Используйте внешнее решение для кэширования, как Tachyon

Я экспериментировал с опциями кэширования в Спарк. Вы можете узнать больше здесь: http://sujee.net/understanding-spark-caching/

+0

Спасибо Суджи. Я работал над этим решением. – Atom

0

Вы можете указать параметр кэширования для RDD. RDD.cache (MEMORY_ONLY)

Spark автоматически очищается, когда никакие другие действия не требуют, чтобы RDD.

Невозможно кэшировать RDD в течение указанного времени.

Пожалуйста, проверьте ссылку ниже

http://spark.apache.org/docs/latest/programming-guide.html#which-storage-level-to-choose

+1

Можно ли обрабатывать через java, приостанавливая выполнение демона, который загружает RDD в кеш? – Atom

+0

Я не уверен в том, что вы вручную остановите демонов. Вы хотите повторно использовать наборы данных между последовательными заданиями? –

+0

@samthebest Вы можете помочь мне понять, есть ли способ кэшировать RDD в течение определенного времени в памяти, а затем очищать его от кеша и загружать его каждый раз, когда выполняется новая работа? – Atom

Смежные вопросы