Olekulised muutused koos sädemete voogesitusega

Selles ajaveebipostituses käsitletakse Sparki voogesituses olekuga muutusi. Siit saate teada kogu partiide andmete jälgimise kohta, kasutades olekus olevaid D-vooge.

Kaastööd tegi Prithviraj Bose



Selles ajaveebis käsitleme Apache Sparki olekuliste teisenduste vaimustavat kontseptsiooni.

Mis on riiklik ümberkujundamine?

Sparki voogesitus kasutab mikropartiiarhitektuuri, kus sissetulevad andmed on rühmitatud mikropartiideks nimega Discretised Streams (DStreams), mis toimib ka põhilise programmeerimise abstraktsioonina. DStreamis on sisemiselt paindlikud hajutatud andmekogumid (RDD) ning selle standardse tulemuse järgi saab RDD-d teisendada ja toiminguid teha.



Kui meil on voogesituste andmete jälgimiseks kasutatav juhtum, vajame riiklikke DStreame.

Näiteks võime jälgida kasutaja interaktsiooni veebisaidil kasutaja seansi ajal või jälgida konkreetset twitteri hashtagi kogu aeg ja vaadata, millised kasutajad kogu maailmas sellest räägivad.

Riikliku transformatsiooni tüübid.



Olekus sisalduvaid D-vooge on kahte tüüpi - aknapõhine jälgimine ja täieliku seansi jälgimine.

Olekulise jälgimise jaoks tuleks kõik sissetulevad andmed teisendada võtmeväärtuste paarideks, nii et võtmeolekuid saaks jälgida kogu paketi kaupa. See on eeltingimus.

Lisaks peaksime võimaldama ka kontrollpunktide määramist, mida käsitleme hilisemates ajaveebides.

> Aknapõhine jälgimine

Aknapõhises jälgimises rühmitatakse saabuvad partiid ajaintervallidena, st grupeeritakse iga x sekundi järel. Nende partiide edasised arvutused tehakse slaidide intervallide abil.

Näiteks kui akna intervall = 3 sekundit ja slaidi intervall = 2 sekundit, siis grupeeritakse kõik sissetulevad andmed partiidena iga 3 sekundi järel ja nende partiide arvutused toimuvad iga 2 sekundi tagant. Teise võimalusena võime öelda, et arvutused tehakse iga 2 sekundi järel viimase 3 sekundi jooksul saabunud partiidele.

spark-streaming-dstream-window

Ülaltoodud diagrammil näeme, et sissetulevad partiid rühmitatakse iga 3 ajaühiku (akna intervall) järgi ja arvutused tehakse iga 2 ajaühiku (slaidide intervall) kaupa.
Märkus: Erinevalt Apache Flinkist puudub Apache Sparkil mõte kukkuda, kõik aknad libisevad.

TULI

Populaarne aknapõhiste teisenduste API on

PairDStreamFunctions.reduceByKeyAndWindow .

Sellel API-l on mitu ülekoormatud versiooni. Vaatame seda, millel on kõige rohkem parameetreid. Pärast seda selgitust peaksid selle API ülejäänud ülekoormatud versioonid olema iseenesestmõistetavad.

Tagastab: teisendatud DStream [(K, V)]

php mysql_fetch_

reducFunc : Assotsiatiivne vähendusfunktsioon.

invReduceFunc : Ülaltoodud pöördfunktsioon vähendab funktsiooni. See on vajalik sissetulevate ja väljaminevate partiide tõhusaks arvutamiseks. Selle funktsiooni abil lahutatakse väljaminevate partiide väärtus ülaltoodud vähendusfunktsiooni kogunenud väärtusest. Näiteks kui arvutame vastavate võtmete sissetulevate väärtuste summa, siis lahutavate partiide jaoks lahutame vastavate võtmete väärtused (tingimusel, et need on praeguses partiis eiratud).

akenKestus : Partiide rühmitamise ajaühikud, see peaks olema partiide intervalli mitmekordne.

slideDuration : Ajaühikud arvutamiseks peaks see olema partiiintervalli korrutis. vaheseinad : Partitsioon, mida saab kasutada saadud DStreami salvestamiseks. Lisateavet jaotamise kohta lugege seda .

filterFunc : Funktsioon aegunud võtmeväärtuste paaride välja filtreerimiseks, st näiteks kui me ei saa võtme jaoks värskendust, võib-olla soovime selle eemaldada.

Siin on a programmi pesa voost tulevate sõnade lugemiseks. Oleme kasutanud ülaltoodud funktsiooni ülekoormatud versiooni akende intervalliga 4 sekundit ja slaidide intervalliga 2 sekundit.

Oma järgmises ajaveebis kirjutan sessiooni täielikust jälgimisest ja kontrollpunktidest.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.

Seonduvad postitused:

Hajutatud vahemällu salvestamine muutujate abil