Ich habe zwei Fragen zur Fehlerbehandlung in der DataSet-API von Flink:
Warum ist der in der Dokumentation der DataSet-API erwähnte Checkpointing-Mechanismus nicht vorhanden?
Wie werden Fehler in der DataSet-API behandelt, z
reduce
oderreduceGroup
Transformation?
Antworten:
2 für die Antwort № 1Flink behandelt Fehler für Streaming- und Stapelverarbeitungsprogramme unterschiedlich.
Bei Streaming-Programmen lautet der Eingabestreamungebunden, so dass es in der Regel nicht möglich oder nicht machbar ist, im Fehlerfall die gesamte Eingabe abzuspielen. Stattdessen überprüft Flink ständig den Status von Operatoren und Benutzerfunktionen und stellt den Status im Falle eines Fehlers wieder her.
Bei Batch-Programmen berechnet Flink Intermediate neuErgebnisse, die aufgrund von Fehlern verloren gingen, indem die erforderlichen Eingabedaten gelesen und die relevanten Transformationen erneut ausgewertet wurden. Dies gilt für alle Transformationen, einschließlich reduce
und reduceGroup
.