2014-11-11 11 views
8

Spark buforuje działający zbiór danych do pamięci, a następnie wykonuje obliczenia z prędkością pamięci. Czy istnieje sposób kontrolowania czasu przechowywania zestawu roboczego w pamięci RAM?iskra Apache w buforowaniu pamięci

Mam ogromną ilość danych, do których można uzyskać dostęp za pośrednictwem zadania. Załadowanie zadania do pamięci RAM zajmuje dużo czasu, a gdy nadchodzi następne zadanie, musi ponownie załadować wszystkie dane do pamięci RAM, co jest czasochłonne. Czy istnieje sposób buforowania danych na zawsze (lub przez określony czas) w pamięci RAM za pomocą Sparka?

Odpowiedz

9

Aby uncache wyraźnie, można użyć RDD.unpersist()

Jeśli chcesz podzielić buforowane RDD w wielu miejsc pracy można spróbować wykonać następujące czynności:

  1. Przeprowadź buforowanie RDD przy użyciu tego samego kontekstu i ponownie użyj kontekstu dla innych zadań. W ten sposób można tylko raz cache i używać go wielokrotnie
  2. Istnieje „” serwery pracy zapłonowe, które istnieją zrobić Powyższy funkcjonalności. Zamówienie Spark Job Server open source od Ooyala.
  3. Użyj zewnętrznego rozwiązania buforowania jak Tachyon

I zostały eksperymentowanie z opcji buforowania w Spark. Możesz przeczytać więcej tutaj: http://sujee.net/understanding-spark-caching/

+0

Dzięki Sujee. Ja pracowałem na tym rozwiązaniu. – Atom

0

Możesz określić opcję buforowania dla RDD. RDD.cache (MEMORY_ONLY)

Iskra automatycznie kasuje, gdy żadne inne działanie nie wymaga RDD.

Nie ma opcji buforowania RDD przez określony czas.

Proszę sprawdzić poniżej linku

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

+1

Może to być obsługiwane przez Java, wstrzymując wykonanie demona, który jest ładowany do pamięci podręcznej RDD? – Atom

+0

Nie jestem pewien co do ręcznego wstrzymywania demonów. Szukasz ponownego wykorzystania zestawów danych pomiędzy kolejnymi pracy? –

+0

@samthebest możesz mi pomóc w zrozumieniu, czy jest możliwym sposobem buforować RDD przez określony czas w pamięci zamiast usuwania go z pamięci podręcznej i ładuje go za każdym razem przebiega świeża praca? – Atom

Powiązane problemy