Spark Streaming-mechanisme voor het opschonen van gegevens
(I) DStream en RDD
Zoals we weten is de 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 laat gebruikers RDD echter niet rechtstreeks gebruiken, maar vat een reeks DStream-concepten samen. DStream en RDD zijn inclusieve relaties, je kunt het begrijpen als het decoratiepatroon in Java, dat wil zeggen, DStream is een verbetering van RDD, maar het gedrag is vergelijkbaar met RDD.
DStream en RDD hebben beide verschillende voorwaarden.
(1) hebben vergelijkbare transformatieacties, zoals map, reduceByKey, etc., maar ook enkele unieke, zoals Window, mapWithStated, etc.
(2) ze hebben allemaal actieacties, zoals foreachRDD, count, etc.
Het programmeermodel is consistent.
(B) Introductie van DStream in Spark Streaming
DStream bevat verschillende klassen.
(1) Gegevensbronklassen, zoals InputDStream, specifiek als DirectKafkaInputStream, enz.
(2) Conversieklassen, doorgaans MappedDStream, ShuffledDStream
(3) uitvoerklassen, doorgaans zoals ForEachDStream
Uit het bovenstaande blijkt dat de gegevens van het begin (invoer) tot het einde (uitvoer) worden gedaan door het DStream-systeem, wat betekent dat de gebruiker normaal gesproken niet direct RDD's kan genereren en manipuleren, wat betekent dat de DStream de mogelijkheid en de verplichting heeft om verantwoordelijk 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 is als volgt ruw.
(1) In InputDStream worden de ontvangen gegevens omgezet in RDD, zoals DirectKafkaInputStream, dat KafkaRDD genereert.
(2) vervolgens via MappedDStream en andere gegevensconversie wordt deze keer direct RDD genoemd, wat overeenkomt met de kaartmethode voor conversie
(3) In de uitvoerklassebewerking kunt u de gebruiker alleen wanneer de RDD wordt blootgesteld, de overeenkomstige opslag, andere berekeningen en andere bewerkingen laten uitvoeren.