Mekanisme til datarensning i Spark Streaming
(I) DStream og RDD
Som vi ved, er Spark Streaming-beregning baseret på Spark Core, og kernen i Spark Core er RDD, så Spark Streaming skal også være relateret til RDD. Spark Streaming tillader dog ikke brugerne at bruge RDD direkte, men abstraherer et sæt af DStream-koncepter. DStream og RDD er inkluderende relationer, som du kan forstå som dekorationsmønsteret i Java, det vil sige, at DStream er en forbedring af RDD, men adfærden ligner RDD.
Både DStream og RDD har flere betingelser.
(1) har lignende transformationshandlinger, såsom map, reduceByKey osv., men også nogle unikke, såsom Window, mapWithStated osv.
(2) alle har handlingshandlinger, såsom foreachRDD, count osv.
Programmeringsmodellen er konsistent.
(B) Introduktion af DStream i Spark Streaming
DStream indeholder flere klasser.
(1) Datakildeklasser, såsom InputDStream, specifikke som DirectKafkaInputStream osv.
(2) Konverteringsklasser, typisk MappedDStream, ShuffledDStream
(3) outputklasser, typisk såsom ForEachDStream
Ud fra ovenstående genereres dataene fra begyndelsen (input) til slutningen (output) af DStream-systemet, hvilket betyder, at brugeren normalt ikke direkte kan generere og manipulere RDD'er, hvilket betyder, at DStream har muligheden og forpligtelsen til at være ansvarlig for RDD'ernes livscyklus.
Med andre ord har Spark Streaming enautomatisk oprydningfungere.
(iii) Processen med RDD-generering i Spark Streaming
Livsflowet for RDD'er i Spark Streaming er omtrent som følger.
(1) I InputDStream transformeres de modtagne data til RDD, såsom DirectKafkaInputStream, som genererer KafkaRDD.
(2) derefter via MappedDStream og anden datakonvertering kaldes denne tid direkte RDD svarende til kortlægningsmetoden til konvertering
(3) I outputklasseoperationen kan du kun lade brugeren udføre den tilsvarende lagring, andre beregninger og andre operationer, når RDD'en er eksponeret.