Spark Streaming-gegevensreinigingsmechanisme
(I) DStream en RDD
Zoals we weten, is Spark Streaming-berekening gebaseerd op Spark Core, en de kern van Spark Core is RDD, dus Spark Streaming moet ook gerelateerd zijn aan RDD. Spark Streaming staat gebruikers echter niet toe om RDD rechtstreeks te gebruiken, maar abstraheert een reeks DStream-concepten. DStream en RDD zijn inclusieve relaties. Je kunt het zien als het decoratiepatroon in Java. Dat wil zeggen dat DStream een verbetering is van RDD, maar het gedrag is vergelijkbaar met dat van RDD.
DStream en RDD hebben beide een aantal voorwaarden.
(1) hebben vergelijkbare transformatie-acties, zoals map, reduceByKey, etc., maar ook enkele unieke, zoals Window, mapWithStated, etc.
(2) hebben allemaal Actie-acties, zoals foreachRDD, count, etc.
Het programmeermodel is consistent.
(B) Introductie van DStream in Spark Streaming
DStream bevat verschillende klassen.
(1) Gegevensbronklassen, zoals InputDStream, specifiek DirectKafkaInputStream, enz.
(2) Conversieklassen, meestal MappedDStream, ShuffledDStream
(3) uitvoerklassen, zoals doorgaans ForEachDStream
Uit het bovenstaande volgt dat de gegevensverwerking van het begin (invoer) tot het einde (uitvoer) door het DStream-systeem wordt gedaan. Dit betekent dat de gebruiker normaal gesproken niet rechtstreeks RDD's kan genereren en manipuleren. DStream heeft dan ook de mogelijkheid en de plicht om verantwoordelijk te zijn voor de levenscyclus van RDD's.
Met andere woorden, Spark Streaming heeft eenautomatisch opruimenfunctie.
(iii) Het proces van RDD-generatie in Spark Streaming
De levensstroom van RDD's in Spark Streaming ziet er globaal als volgt uit.
(1) In InputDStream worden de ontvangen gegevens getransformeerd naar RDD, zoals DirectKafkaInputStream, dat KafkaRDD genereert.
(2) vervolgens wordt via MappedDStream en andere gegevensconversie deze tijd direct RDD genoemd, wat overeenkomt met de kaartmethode voor conversie
(3) In de uitvoerklassebewerking kunt u de gebruiker alleen de bijbehorende opslag, andere berekeningen en andere bewerkingen laten uitvoeren als de RDD is blootgesteld.