Mekanisme for datarensing av Spark Streaming
(I) DStream og RDD
Som vi vet, er Spark Streaming-beregning basert på Spark Core, og kjernen i Spark Core er RDD, så Spark Streaming må også være relatert til RDD. Spark Streaming lar imidlertid ikke brukere bruke RDD direkte, men abstraherer et sett med DStream-konsepter. DStream og RDD er inkluderende relasjoner, du kan forstå det som dekorasjonsmønsteret i Java, det vil si at DStream er en forbedring av RDD, men oppførselen ligner på RDD.
Både DStream og RDD har flere betingelser.
(1) har lignende transformasjonshandlinger, som map, reduceByKey osv., men også noen unike, som Window, mapWithStated osv.
(2) alle har handlingshandlinger, som for eksempel foreachRDD, count osv.
Programmeringsmodellen er konsistent.
(B) Introduksjon av DStream i Spark-strømming
DStream inneholder flere klasser.
(1) Datakildeklasser, som InputDStream, spesifikke som DirectKafkaInputStream, osv.
(2) Konverteringsklasser, vanligvis MappedDStream, ShuffledDStream
(3) utdataklasser, vanligvis slik som ForEachDStream
Ut fra det ovennevnte blir dataene fra begynnelsen (input) til slutten (output) gjort av DStream-systemet, noe som betyr at brukeren normalt ikke kan generere og manipulere RDD-er direkte, noe som betyr at DStream har muligheten og forpliktelsen til å være ansvarlig for livssyklusen til RDD-ene.
Med andre ord har Spark Streaming enautomatisk oppryddingfunksjon.
(iii) Prosessen med RDD-generering i Spark Streaming
Livsflyten til RDD-er i Spark Streaming er omtrent som følger.
(1) I InputDStream transformeres de mottatte dataene til RDD, for eksempel DirectKafkaInputStream, som genererer KafkaRDD.
(2) deretter, via MappedDStream og annen datakonvertering, kalles denne tiden direkte RDD, tilsvarende kartmetoden for konvertering.
(3) I operasjonen med utdataklassen kan du bare la brukeren utføre tilsvarende lagring, andre beregninger og andre operasjoner når RDD-en er eksponert.