Apache-Funke beim Zwischenspeichern des Speichers

8

Spark speichert den Arbeitsdatensatz im Speicher und führt dann Berechnungen mit Speichergeschwindigkeiten durch. Gibt es eine Möglichkeit zu steuern, wie lange der Arbeitssatz im Arbeitsspeicher liegt?

Ich habe eine große Menge an Daten, auf die über den Job zugegriffen wird. Es braucht Zeit, um den Job zunächst in den RAM zu laden, und wenn der nächste Job eintrifft, muss er alle Daten erneut in den RAM laden, was zeitaufwendig ist. Gibt es eine Möglichkeit, die Daten für immer (oder für eine bestimmte Zeit) mit Spark in den Arbeitsspeicher zwischenzuspeichern?

    
Atom 11.11.2014, 05:32
quelle

2 Antworten

9

Um den Cache explizit zu deaktivieren, können Sie RDD.unpersist verwenden ()

Wenn Sie zwischengespeicherte RDDs für mehrere Jobs freigeben möchten, können Sie Folgendes versuchen:

  1. Speichern Sie die RDD im selben Kontext und verwenden Sie den Kontext für andere Jobs. Auf diese Weise können Sie nur einmal cachen und mehrmals verwenden
  2. Es gibt 'funke job servers', die für die oben genannten Funktionen existieren. Checkout Spark-Jobserver von Ooyala geöffnet.
  3. Verwenden Sie eine externe Caching-Lösung wie Tachyon

Ich habe mit den Cache-Optionen in Spark experimentiert. Sie können hier mehr lesen: Ссылка

    
Sujee Maniyam 07.02.2015, 07:07
quelle
0

Sie können die Cache-Option für eine RDD angeben. RDD.cache (MEMORY_ONLY)

Spark wird automatisch gelöscht, wenn keine andere Aktion RDD erfordert.

Es gibt keine Option, eine RDD für eine bestimmte Zeit zwischenzuspeichern.

Bitte überprüfen Sie den folgenden Link

Ссылка

    
Vijay Innamuri 11.11.2014 07:19
quelle

Tags und Links