Prispeval Prithviraj Bose
V tem blogu bomo razpravljali o konceptu oken državnega spreminjanja Apache Spark.
Kaj je preobrazba s stanjem?
Spark streaming uporablja mikro paketno arhitekturo, kjer so dohodni podatki združeni v mikro serije, imenovane Discretized Streams (DStreams), ki služi tudi kot osnovna programska abstrakcija. DStreams imajo interno prožne distribuirane nabore podatkov (RDD) in kot rezultat te standardne RDD transformacije in dejanja je mogoče storiti.
Če imamo pretok, če imamo primer uporabe za sledenje podatkov po svežnjih, potem potrebujemo DStreams v celoti.
Tako lahko na primer sledimo interakciji uporabnika na spletnem mestu med uporabniško sejo ali pa sledimo določenemu hashtagu twitterja skozi čas in vidimo, kateri uporabniki po vsem svetu govorijo o tem.
Vrste preobrazbe v celoti.
DStreams v celoti sta dve vrsti - sledenje po oknih in popolno sledenje sejam.
Za sledenje s stanjem je treba vse dohodne podatke pretvoriti v pare ključ / vrednost, tako da je ključnim stanjem mogoče slediti po svežnjih. To je predpogoj.
Poleg tega bi morali omogočiti tudi kontrolno točko, koncept, o katerem bomo razpravljali v kasnejših blogih.
> Sledenje z okni
Pri sledenju na osnovi oken so dohodni paketi razvrščeni v časovne intervale, tj. Skupinske pakete vsakih 'x' sekund. Nadaljnji izračuni za te serije se opravijo z uporabo diapozitivov.
Na primer, če je interval okna = 3 sekunde in interval diapozitiva = 2 sekundi, bodo vsi dohodni podatki združeni v sklope vsake 3 sekunde in izračuni na teh svežnjih se bodo izvajali vsaki 2 sekundi. Lahko pa rečemo, da izračunajte vsake 2 sekundi na serijah, ki so prispele v zadnjih 3 sekundah.
V zgornjem diagramu vidimo, da so dohodne serije združene vsake 3 enote časa (interval okna), izračuni pa se opravijo vsaki 2 enoti časa (interval diapozitiva).
Opomba: Za razliko od Apache Flink Apache Spark nima koncepta premikanja oken, vsa okna drsijo.
OGNJ
Priljubljen API za pretvorbe na osnovi oken je
PairDStreamFunctions.reduceByKeyAndWindow .
Obstaja več preobremenjenih različic tega API-ja, poglejmo tisto, ki ima največje število parametrov. Po tej razlagi bi morale biti ostale preobremenjene različice tega API samoumevne.
Vrne: preoblikovani DStream [(K, V)]
reduceFunc : Asociativna funkcija zmanjšanja.
invReduceFunc : Inverzna od zgornje funkcije zmanjšanja. To je potrebno za učinkovito računanje dohodnih in odhodnih serij. S pomočjo te funkcije se od skupne vrednosti zgornje funkcije zmanjšanja odšteje vrednost odhodnih serij. Če na primer izračunavamo vsoto dohodnih vrednosti za posamezne ključe, potem bomo za odhodne pakete odšteli vrednosti za posamezne ključe (pod pogojem, da so v trenutnem paketu sicer prezrti).
kako uporabiti podniz v
trajanje okna : Enote časa za razvrščanje serij, to mora biti večkratnik intervala šarže.
slideDuration : Enote za izračun, to mora biti večkratnik intervala serije. predelne stene : Razdelilnik za shranjevanje nastalega DStreama. Za več informacij o razdelitvi preberite to .
filterFunc : Funkcija filtriranja potečenih parov ključ-vrednost, tj. Na primer, če za nekaj časa ne dobimo posodobitve za ključ, ga bomo morda želeli odstraniti.
Tukaj je program za štetje besed, ki prihajajo iz toka vtičnice. Uporabili smo preobremenjeno različico zgornje funkcije z intervalom okna 4 sekunde in intervalom diapozitiva 2 sekundi.
V naslednjem blogu bom pisal o popolnem sledenju sestankov in kontrolnih točkah.
Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.
Sorodne objave: