Spark Streaming duomenų valymo mechanizmas
(I) DStream ir RDD
Kaip žinome, „Spark Streaming“ skaičiavimas yra pagrįstas „Spark Core“, o „Spark Core“ branduolys yra RDD, todėl „Spark Streaming“ taip pat turi būti susijęs su RDD.Tačiau „Spark Streaming“ neleidžia vartotojams tiesiogiai naudoti RDD, o abstrahuoja DStream sąvokų rinkinį, DStream ir RDD yra įtraukiantys ryšiai, kuriuos galite suprasti kaip „Java“ dekoravimo modelį, tai yra, „DStream“ yra RDD patobulinimas, bet elgesys panašus į RDD.
DStream ir RDD turi keletą sąlygų.
(1) turi panašius transformavimo veiksmus, tokius kaip žemėlapis, redukcijos raktas ir kt., tačiau taip pat yra unikalių, pvz., „Window“, „mapWithStated“ ir kt.
(2) visi turi veiksmų veiksmus, pvz., foreachRDD, count ir kt.
Programavimo modelis yra nuoseklus.
(B) „DStream“ įvedimas į „Spark Streaming“.
„DStream“ yra keletas klasių.
(1) Duomenų šaltinių klasės, pvz., „InputDStream“, specifinės kaip „DirectKafkaInputStream“ ir kt.
(2) Konversijos klasės, paprastai MappedDStream, ShuffledDStream
(3) išvesties klasės, paprastai tokios kaip ForEachDStream
Iš to, kas išdėstyta aukščiau, duomenis nuo pradžios (įvesties) iki pabaigos (išvesties) atlieka DStream sistema, o tai reiškia, kad vartotojas paprastai negali tiesiogiai generuoti ir manipuliuoti RDD, o tai reiškia, kad DStream turi galimybę ir pareigą būti atsakingas už RDD gyvavimo ciklą.
Kitaip tariant, „Spark Streaming“ turiautomatinis valymasfunkcija.
(iii) RDD generavimo procesas naudojant „Spark Streaming“.
RDD gyvavimo srautas naudojant „Spark Streaming“ yra apytikslis.
(1) „InputDStream“ gauti duomenys paverčiami RDD, pvz., „DirectKafkaInputStream“, kuris generuoja „KafkaRDD“.
(2) tada naudojant MappedDStream ir kitus duomenų konvertavimą, šis laikas tiesiogiai vadinamas RDD, atitinkančiu konvertavimo žemėlapio metodą.
(3) Atliekant išvesties klasės operaciją, tik tada, kai veikia RDD, galite leisti vartotojui atlikti atitinkamas saugojimo, kitus skaičiavimus ir kitas operacijas.