2016-04-14 9 views
1

Was macht Checkpointing für Apache Spark, und braucht es irgendwelche Zugriffe auf RAM oder CPU?Was macht Checkpointing bei Apache Spark?

+2

Was verstehen Sie nicht beim Lesen der Dokumentation? http://spark.apache.org/docs/latest/streaming-programming-guide.html#checkpointing –

+2

Mögliches Duplikat von [Was ist der Unterschied zwischen Spark Checkpoint und persistieren auf eine Festplatte] (http://stackoverflow.com/ Fragen/35127720/Was ist der Unterschied zwischen Spark-Checkpoint und Persist-to-a-Disk – zero323

Antwort

1

Von Apache Streaming Documentation - Hoffe, es hilft:

Ein Streaming-Anwendung muss 24/7 betreiben und damit zu Ausfällen in keinem Zusammenhang mit der Anwendungslogik elastisch sein müssen (zum Beispiel Systemausfälle, JVM Abstürze, etc.). Damit dies möglich ist, muss Spark Streaming genügend Informationen an ein fehlertolerantes Speichersystem senden, damit es sich von Fehlern erholen kann. Es gibt zwei Arten von Daten, die überprüft werden.

  • Metadaten-Checkpointing - Speichern der Informationen, die die Streaming-Berechnung definieren, in fehlertoleranten Speicher wie HDFS. Dies wird verwendet, um den Fehler des Knotens wiederherzustellen, der den Treiber der Streaming-Anwendung ausführt (wird später im Detail beschrieben). Die Metadaten umfassen:
    • Konfiguration - Die Konfiguration, die zum Erstellen der Streaming-Anwendung verwendet wurde.
    • DStream-Operationen - Die DStream-Operationen , die die Streaming-Anwendung definieren.
    • Unvollständige Chargen
    • Chargen, deren Jobs in die Warteschlange gestellt, aber noch nicht abgeschlossen sind.
  • Daten Checkpointing - Speichern der generierten RDDs zu einem zuverlässigen Speicher. Dies ist bei einigen Stateful-Transformationen erforderlich, bei denen Daten über mehrere Stapel hinweg kombiniert werden. Bei solchen Transformationen hängen die erzeugten RDDs von den RDDs früherer Batches ab, wodurch die Länge der Abhängigkeitskette mit der Zeit zunimmt. Um solche unbegrenzten Erhöhungen der Wiederherstellungszeit (proportional zur Abhängigkeitskette) zu vermeiden, werden Zwischen-RDDs von zustandsbehafteten Transformationen periodisch auf einen zuverlässigen Speicher überprüft (z.B. HDFS), um die Abhängigkeitsketten abzutrennen.
  • Zusammenfassend, Metadaten Checkpointing wird in erster Linie für die Wiederherstellung von Treiberfehlern benötigt, während Daten oder RDD Checkpointing ist auch für die grundlegende Funktionsweise notwendig, wenn Stateful Transformationen verwendet werden.