Spark Streaming-Datenbereinigungsmechanismus
(I) DStream und RDD
Wie wir wissen, basiert die Spark-Streaming-Berechnung auf Spark Core und der Kern von Spark Core ist RDD, sodass Spark Streaming auch mit RDD verknüpft sein muss.Spark Streaming ermöglicht Benutzern jedoch nicht die direkte Verwendung von RDD, sondern abstrahiert eine Reihe von DStream-Konzepten. DStream und RDD sind inklusive Beziehungen. Sie können es als Dekorationsmuster in Java verstehen, das heißt, DStream ist eine Erweiterung von RDD, aber Das Verhalten ähnelt RDD.
Für DStream und RDD gelten jeweils mehrere Bedingungen.
(1) haben ähnliche Transformationsaktionen wie Map, ReduceByKey usw., aber auch einige einzigartige wie Window, MapWithStated usw.
(2) Alle verfügen über Aktionsaktionen wie foreachRDD, count usw.
Das Programmiermodell ist konsistent.
(B) Einführung von DStream in Spark Streaming
DStream enthält mehrere Klassen.
(1) Datenquellenklassen wie InputDStream, spezifisch wie DirectKafkaInputStream usw.
(2) Konvertierungsklassen, normalerweise MappedDStream, ShuffledDStream
(3) Ausgabeklassen, typischerweise wie ForEachDStream
Aus dem oben Gesagten geht hervor, dass die Daten vom Anfang (Eingabe) bis zum Ende (Ausgabe) vom DStream-System verarbeitet werden, was bedeutet, dass der Benutzer RDDs normalerweise nicht direkt generieren und manipulieren kann, was bedeutet, dass DStream die Möglichkeit und Verpflichtung dazu hat verantwortlich für den Lebenszyklus von RDDs.
Mit anderen Worten: Spark Streaming verfügt über eineautomatische BereinigungFunktion.
(iii) Der Prozess der RDD-Generierung in Spark Streaming
Der Lebensfluss von RDDs in Spark Streaming ist grob wie folgt.
(1) In InputDStream werden die empfangenen Daten in RDD umgewandelt, z. B. DirectKafkaInputStream, wodurch KafkaRDD generiert wird.
(2) Anschließend wird die Datenkonvertierung über MappedDStream und andere durchgeführt. Dieses Mal wird RDD direkt aufgerufen, um die entsprechende Kartenmethode für die Konvertierung zu verwenden
(3) In der Ausgabeklassenoperation können Sie den Benutzer nur dann die entsprechende Speicherung, andere Berechnungen und andere Vorgänge ausführen lassen, wenn das RDD verfügbar gemacht wird.