Rengöringsmekanism för Spark Streaming-data
(I) DSream och RDD
Som vi vet är Spark Streaming-beräkning baserad på Spark Core, och kärnan i Spark Core är RDD, så Spark Streaming måste också vara relaterad till RDD.Spark Streaming låter dock inte användare använda RDD direkt, utan abstraherar en uppsättning DStream-koncept, DStream och RDD är inkluderande relationer, du kan förstå det som dekorationsmönstret i Java, det vill säga DStream är en förbättring av RDD, men beteendet liknar RDD.
DStream och RDD har båda flera villkor.
(1) har liknande transformationsåtgärder, såsom map, reduceByKey, etc., men också några unika, såsom Window, mapWithStated, etc.
(2) alla har Action-åtgärder, såsom foreachRDD, count, etc.
Programmeringsmodellen är konsekvent.
(B) Introduktion av DStream i Spark Streaming
DStream innehåller flera klasser.
(1) Datakällklasser, såsom InputDStream, specifika som DirectKafkaInputStream, etc.
(2) Konverteringsklasser, vanligtvis MappedDStream, ShuffledDStream
(3) utdataklasser, vanligtvis som ForEachDStream
Från ovanstående görs data från början (input) till slutet (output) av DStream-systemet, vilket innebär att användaren normalt inte direkt kan generera och manipulera RDD:er, vilket innebär att DStream har möjlighet och skyldighet att vara ansvarar för livscykeln för RDD:er.
Med andra ord har Spark Streaming enautomatisk rengöringfungera.
(iii) Processen för RDD-generering i Spark Streaming
Livsflödet för RDD:er i Spark Streaming är grovt enligt följande.
(1) I InputDStream omvandlas mottagna data till RDD, såsom DirectKafkaInputStream, som genererar KafkaRDD.
(2) sedan via MappedDStream och annan datakonvertering kallas denna tid direkt för RDD motsvarande kartmetoden för konvertering
(3) I utgångsklassens operation, endast när RDD är exponerad, kan du låta användaren utföra motsvarande lagring, andra beräkningar och andra operationer.