Stavové transformácie s vytváraním okien v streamovaní iskier



Tento blogový príspevok pojednáva o stavových transformáciách s vytváraním okien v Spark Streamingu. Dozviete sa všetko o sledovaní údajov v dávkach pomocou stavových streamov D-stream.

Prispel Prithviraj Bose

V tomto blogu sa budeme zaoberať konceptom okien stavových transformácií Apache Spark.





program na výber výberu v jave

Čo je stavová transformácia?

Streamovanie Spark využíva mikro dávkovú architektúru, kde sú prichádzajúce dáta zoskupené do mikro dávok nazývaných Discretized Streams (DStreams), ktoré slúžia tiež ako základná abstrakcia programovania. DStreams majú interne Resilient Distributed Datasets (RDD) a ako výsledok tohto štandardného RDD je možné vykonať transformácie a akcie.



Pri streamovaní, ak máme prípad použitia na sledovanie dát naprieč dávkami, potrebujeme stavové DStreamy.

Môžeme napríklad sledovať interakciu používateľa na webe počas relácie používateľa alebo môžeme sledovať konkrétny hashtag na twitteri v čase a zistiť, ktorí používatelia na celom svete o tom hovoria.

Typy stavovej transformácie.



Stavové DStreamy sú dva typy - sledovanie založené na okne a sledovanie celej relácie.

Pre stavové sledovanie by sa všetky prichádzajúce údaje mali transformovať na páry kľúč - hodnota, aby bolo možné sledovať kľúčové stavy naprieč dávkami. Toto je predpoklad.

Ďalej by sme mali tiež povoliť checkpoint, koncept, o ktorom sa budeme baviť v ďalších blogoch.

> Sledovanie na základe okna

Pri sledovaní na základe okna sú prichádzajúce dávky zoskupené v časových intervaloch, t. J. Zoskupujte dávky každých „x“ sekúnd. Ďalšie výpočty týchto dávok sa uskutočňujú pomocou intervalov snímok.

Napríklad ak je interval okna = 3 sekundy a interval snímania = 2 sekundy, potom budú všetky prichádzajúce údaje zoskupené v dávkach každé 3 sekundy a výpočty v týchto dávkach sa uskutočnia každé 2 sekundy. Prípadne môžeme povedať, že pri dávkach, ktoré prišli za posledné 3 sekundy, robte výpočty každé 2 sekundy.

spark-streaming-dstream-window

Na vyššie uvedenom diagrame vidíme, že prichádzajúce dávky sú zoskupené každé 3 jednotky času (interval okna) a výpočty sa vykonávajú každé 2 jednotky času (interval posunu).
Poznámka: Na rozdiel od Apache Flink nemá Apache Spark koncept prepadávacieho okna, všetky okná sú posuvné.

POŽIAR

Populárne API pre transformácie založené na oknách je

PairDStreamFunctions.reduceByKeyAndWindow .

Existuje niekoľko preťažených verzií tohto rozhrania API, pozrime sa na tú, ktorá má najväčší počet parametrov. Po tomto vysvetlení by zvyšok preťažených verzií tohto rozhrania API mal byť samozrejmý.

Vráti: Transformovaný DStream [(K, V)]

znížiťFunc : Asociatívna redukčná funkcia.

invReduceFunc : Inverzia vyššie uvedenej funkcie redukcie. To je potrebné na efektívne počítanie prichádzajúcich a odchádzajúcich dávok. Pomocou tejto funkcie sa hodnota odchádzajúcich dávok odpočíta od kumulovanej hodnoty vyššie uvedenej redukčnej funkcie. Napríklad, ak počítame súčet prichádzajúcich hodnôt pre príslušné kľúče, potom pre odchádzajúce dávky odčítame hodnoty pre príslušné kľúče (za predpokladu, že sú prítomné v aktuálnej dávke, inak ich ignorujeme).

windowDuration : Časové jednotky na zoskupenie dávok, toto by mal byť násobok intervalu dávky.

slideDuration : Časové jednotky pre výpočet, toto by mal byť násobok dávkového intervalu. priečky : Oddeľovač, ktorý sa má použiť na ukladanie výsledného DStream. Ďalšie informácie o rozdelení na oddiely nájdete v časti toto .

filterFunc : Funkcia na odfiltrovanie párov kľúč - hodnota, ktorým vypršala platnosť, t. J. Napríklad ak niekedy nedostaneme aktualizáciu pre kľúč, možno ju budeme chcieť odstrániť.

Tu je program na spočítanie slov pochádzajúcich z prúdu zásuvky. Použili sme preťaženú verziu vyššie uvedenej funkcie s intervalom okna 4 sekundy a intervalom posunu 2 sekundy.

V mojom ďalšom blogu budem písať o úplnom sledovaní relácií a kontrolných bodoch.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.

Súvisiace príspevky:

Distribuované medzipamäť s premennými vysielania