Mehanizam čišćenja podataka Spark Streaminga
(I) DStream i RDD
Kao što znamo, izračunavanje Spark Streaminga temelji se na Spark Coreu, a jezgra Spark Corea je RDD, tako da Spark Streaming također mora biti povezan s RDD-om. Međutim, Spark Streaming ne dopušta korisnicima izravno korištenje RDD-a, već apstrahira skup DStream koncepata, DStream i RDD su inkluzivni odnosi, možete ih shvatiti kao uzorak ukrašavanja u Javi, odnosno DStream je poboljšanje RDD-a, ali ponašanje je slično RDD-u.
DStream i RDD imaju nekoliko uvjeta.
(1) imaju slične transformacijske akcije, kao što su map, reduceByKey itd., ali i neke jedinstvene, kao što su Window, mapWithStated itd.
(2) sve imaju akcije, kao što su foreachRDD, count itd.
Programski model je konzistentan.
(B) Uvođenje DStream-a u Spark Streaming
DStream sadrži nekoliko klasa.
(1) Klase izvora podataka, kao što je InputDStream, specifične kao DirectKafkaInputStream itd.
(2) Klase konverzije, obično MappedDStream, ShuffledDStream
(3) izlazne klase, obično kao što su ForEachDStream
Iz navedenog, podatke od početka (ulaza) do kraja (izlaza) obrađuje DStream sustav, što znači da korisnik obično ne može izravno generirati i manipulirati RDD-ovima, što znači da DStream ima priliku i obvezu biti odgovoran za životni ciklus RDD-ova.
Drugim riječima, Spark Streaming imaautomatsko čišćenjefunkcija.
(iii) Proces generiranja RDD-a u Spark Streamingu
Životni tok RDD-ova u Spark Streamingu je otprilike sljedeći.
(1) U InputDStreamu, primljeni podaci se transformiraju u RDD, kao što je DirectKafkaInputStream, koji generira KafkaRDD.
(2) zatim putem MappedDStream i drugih pretvorbi podataka, ovo vrijeme se izravno naziva RDD što odgovara metodi mapiranja za pretvorbu
(3) U operaciji izlazne klase, samo kada je RDD izložen, možete dopustiti korisniku da izvrši odgovarajuću pohranu, druge izračune i druge operacije.