• news_banner

Service

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, daher muss Spark Streaming auch mit RDD in Verbindung stehen. 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 dies als Dekorationsmuster in Java verstehen, d. h. DStream ist eine Erweiterung von RDD, das Verhalten ähnelt jedoch RDD.
DStream und RDD haben beide mehrere Bedingungen.
(1) haben ähnliche Transformationsaktionen wie Map, ReduceByKey usw., aber auch einige einzigartige wie Window, MapWithStated usw.
(2) Alle haben Aktionsaktionen, wie z. B. foreachRDD, count usw.
Das Programmiermodell ist konsistent.
(B) Einführung von DStream in Spark Streaming
DStream enthält mehrere Klassen.
(1) Datenquellenklassen, wie z. B. InputDStream, insbesondere DirectKafkaInputStream usw.
(2) Konvertierungsklassen, typischerweise 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. Dies bedeutet, dass der Benutzer RDDs normalerweise nicht direkt generieren und bearbeiten kann, was bedeutet, dass DStream die Möglichkeit und Verpflichtung hat, für den Lebenszyklus von RDDs verantwortlich zu sein.
Mit anderen Worten: Spark Streaming hat 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, das KafkaRDD generiert.
(2) Anschließend werden die Daten durch MappedDStream und andere konvertiert. Zu diesem Zeitpunkt wird die entsprechende Map-Methode für die RDD-Konvertierung direkt aufgerufen.
(3) Bei der Ausgabeklassenoperation können Sie den Benutzer nur dann die entsprechende Speicherung, andere Berechnungen und andere Operationen durchführen lassen, wenn das RDD verfügbar ist.