„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 įtraukūs ryšiai, kuriuos galite suprasti kaip dekoravimo modelį „Java“ kalboje, t. y. „DStream“ yra RDD patobulinimas, tačiau jo veikimas panašus į RDD.
„DStream“ ir „RDD“ turi keletą sąlygų.
(1) turi panašius transformacijos veiksmus, pvz., „map“, „reduceByKey“ ir kt., bet taip pat ir keletą unikalių, pvz., „Window“, „mapWithStated“ ir kt.
(2) visi turi veiksmų tipus, pvz., „foreachRDD“, „count“ ir kt.
Programavimo modelis yra nuoseklus.
(B) „DStream“ įdiegimas „Spark Streaming“ sistemoje
„DStream“ turi kelias klases.
(1) Duomenų šaltinių klasės, tokios kaip „InputDStream“, konkrečios kaip „DirectKafkaInputStream“ ir kt.
(2) Konversijos klasės, paprastai „MappedDStream“, „ShuffledDStream“
(3) išvesties klasės, paprastai tokios kaip „ForEachDStream“
Remiantis tuo, kas išdėstyta pirmiau, duomenis nuo pradžios (įvesties) iki pabaigos (išvesties) tvarko „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 atsakinga už RDD gyvavimo ciklą.
Kitaip tariant, „Spark Streaming“ turiautomatinis valymasfunkcija.
(iii) RDD generavimo procesas naudojant „Spark Streaming“
RDD gyvavimo eiga „Spark Streaming“ programoje yra apytikslė:
(1) „InputDStream“ programoje gauti duomenys transformuojami į RDD, pvz., „DirectKafkaInputStream“, kuris generuoja „KafkaRDD“.
(2) tada, naudojant „MappedDStream“ ir kitą duomenų konvertavimą, šis laikas tiesiogiai vadinamas RDD, atitinkančiu konvertavimo žemėlapio metodą.
(3) Išvesties klasės operacijoje, tik tada, kai RDD yra atviras, galite leisti vartotojui atlikti atitinkamą saugyklą, kitus skaičiavimus ir kitas operacijas.