Mecanismul de curățare a datelor Spark Streaming
(I) DStream și RDD
După cum știm, calculul Spark Streaming se bazează pe Spark Core, iar nucleul Spark Core este RDD, deci Spark Streaming trebuie să fie și el corelat cu RDD. Cu toate acestea, Spark Streaming nu permite utilizatorilor să utilizeze RDD direct, ci abstractizează un set de concepte DStream. DStream și RDD sunt relații incluzive, pe care le putem înțelege ca model decorativ în Java, adică DStream este o îmbunătățire a RDD, dar comportamentul este similar cu RDD.
Atât DStream, cât și RDD au mai multe condiții.
(1) au acțiuni de transformare similare, cum ar fi map, reduceByKey etc., dar și unele unice, cum ar fi Window, mapWithStated etc.
(2) toate au acțiuni de tip Action, cum ar fi foreachRDD, count etc.
Modelul de programare este consistent.
(B) Introducerea DStream în Spark Streaming
DStream conține mai multe clase.
(1) Clase de surse de date, cum ar fi InputDStream, specifice precum DirectKafkaInputStream etc.
(2) Clase de conversie, de obicei MappedDStream, ShuffledDStream
(3) clase de ieșire, de obicei precum ForEachDStream
Din cele de mai sus, datele de la început (intrare) până la sfârșit (ieșire) sunt gestionate de sistemul DStream, ceea ce înseamnă că, în mod normal, utilizatorul nu poate genera și manipula direct RDD-uri, ceea ce înseamnă că DStream are oportunitatea și obligația de a fi responsabil pentru ciclul de viață al RDD-urilor.
Cu alte cuvinte, Spark Streaming are uncurățare automatăfuncţie.
(iii) Procesul de generare RDD în Spark Streaming
Fluxul de viață al RDD-urilor în Spark Streaming este aproximativ după cum urmează.
(1) În InputDStream, datele primite sunt transformate în RDD, cum ar fi DirectKafkaInputStream, care generează KafkaRDD.
(2) apoi, prin MappedDStream și alte metode de conversie a datelor, de data aceasta se numește direct RDD, corespunzătoare metodei de cartografiere pentru conversie.
(3) În operațiunea clasei de ieșire, numai atunci când RDD este expus, puteți permite utilizatorului să efectueze stocarea corespunzătoare, alte calcule și alte operațiuni.