Spark Streaming -datan puhdistusmekanismi
(I) DStream ja RDD
Kuten tiedämme, Spark Streaming -laskenta perustuu Spark Coreen, ja Spark Coren ydin on RDD, joten Spark Streamingin on myös liityttävä RDD:hen. Spark Streaming ei kuitenkaan anna käyttäjien käyttää RDD:tä suoraan, vaan se abstraktoi joukon DStream-käsitteitä. DStream ja RDD ovat osallistavia suhteita, ja ne voidaan ymmärtää Javan koristelumallina. Eli DStream on RDD:n parannus, mutta toimii samalla tavalla kuin RDD.
Sekä DStreamilla että RDD:llä on useita ehtoja.
(1) omaavat samankaltaisia muunnostoimintoja, kuten map, reduceByKey jne., mutta myös joitakin ainutlaatuisia, kuten Window, mapWithStated jne.
(2) kaikilla on toimintofunktioita, kuten foreachRDD, count jne.
Ohjelmointimalli on johdonmukainen.
(B) DStreamin käyttöönotto Spark-suoratoistossa
DStream sisältää useita luokkia.
(1) Tietolähdeluokat, kuten InputDStream, erityisesti DirectKafkaInputStream jne.
(2) Muunnosluokat, tyypillisesti MappedDStream, ShuffledDStream
(3) tulostoluokat, tyypillisesti kuten ForEachDStream
Yllä olevasta voidaan päätellä, että datan alusta (syöttö) loppuun (tulostus) hoitaa DStream-järjestelmä, mikä tarkoittaa, että käyttäjä ei normaalisti voi suoraan luoda ja käsitellä RDD-tiedostoja. Tämä tarkoittaa, että DStreamilla on mahdollisuus ja velvollisuus olla vastuussa RDD-tiedostojen elinkaaresta.
Toisin sanoen, Spark Streamingilla onautomaattinen puhdistustoiminto.
(iii) RDD-generointiprosessi Spark-suoratoistossa
RDD-tiedostojen elinkaari Spark Streamingissa on karkeasti seuraava.
(1) InputDStream-funktiossa vastaanotettu data muunnetaan RDD-muotoon, kuten DirectKafkaInputStream-muotoon, mikä luo KafkaRDD-muotoon.
(2) sitten MappedDStreamin ja muiden datamuunnosten avulla tätä aikaa kutsutaan suoraan RDD:ksi, joka vastaa muunnoksessa käytettyä karttamenetelmää.
(3) Tulostusluokan toiminnassa käyttäjä voi suorittaa vastaavan tallennuksen, muut laskelmat ja toiminnot vain, kun RDD on näkyvissä.