Lähettäjä Prithviraj Bose
Tässä blogissa keskustelemme Apache Sparkin tilanmuutosten raivokkaasta käsitteestä.
Mikä on tilallinen muutos?
Spark-suoratoisto käyttää mikro-eräarkkitehtuuria, jossa saapuvat tiedot ryhmitellään mikrokokonaisuuksiksi, nimeltään Discretized Streams (DStreams), jotka toimivat myös ohjelmoinnin perustoimintona. DStreameissa on sisäisesti joustavat hajautetut tietojoukot (RDD), ja tämän standardin seurauksena RDD-muunnokset ja toiminnot voidaan tehdä.
Suoratoistossa, jos meillä on käyttötapa tietojen seurantaan erissä, tarvitsemme tilakohtaisia DStreameja.
Voimme esimerkiksi seurata käyttäjän vuorovaikutusta verkkosivustolla käyttäjäistunnon aikana tai seurata tiettyä twitter-hashtagia ajan mittaan ja nähdä, mitkä käyttäjät ympäri maailmaa puhuvat siitä.
Tyypilliset tilanmuutoksen tyypit.
Tilatiedot täyttäviä D-streameja on kahden tyyppisiä - ikkuna- ja täysistuntoseuranta.
Tilannekohtaista seurantaa varten kaikki saapuvat tiedot tulisi muuntaa avainarvopareiksi siten, että avaintiloja voidaan seurata erissä. Tämä on edellytys.
Lisäksi meidän tulisi sallia tarkistuspisteytys, käsite, josta keskustelemme myöhemmissä blogeissa.
> Ikkunapohjainen seuranta
Ikkunapohjaisessa seurannassa saapuvat erät ryhmitellään aikavälein, ts. Ryhmäerät x-sekunnin välein. Näiden erien lisälaskelmat tehdään käyttämällä diaväliä.
Esimerkiksi, jos ikkunaväli = 3 sekuntia ja diaväli = 2 sekuntia, kaikki saapuvat tiedot ryhmitellään erissä 3 sekunnin välein ja näiden erien laskelmat tapahtuvat 2 sekunnin välein. Vaihtoehtoisesti voimme sanoa, että tee laskelmat 2 sekunnin välein viimeisten 3 sekunnin aikana saapuneista eristä.

Yllä olevasta kaaviosta näemme, että saapuvat erät ryhmitellään joka 3. aikayksikkö (ikkunaväli) ja laskelmat tehdään joka 2. aikayksikkö (diaväli).
Huomautus: Toisin kuin Apache Flink, Apache Sparkilla ei ole käsitystä romahtamisesta, kaikki ikkunat liukuvat.
ANTAA POTKUT
Suosittu sovellusliittymä ikkunapohjaisiin muunnoksiin on
PairDStreamFunctions.reduceByKeyAndWindow .
Tästä sovellusliittymästä on useita ylikuormitettuja versioita. Katsotaanpa sitä, jolla on eniten parametreja. Tämän selityksen jälkeen muiden tämän sovellusliittymän ylikuormitettujen versioiden pitäisi olla itsestään selviä.
Palauttaa: Muunnettu DStream [(K, V)]
reducFunc : Assosiatiivinen pelkistystoiminto.
invReduceFunc : Yllä olevan käänteinen vähennysfunktio. Tätä tarvitaan saapuvien ja lähtevien erien tehokkaaseen laskemiseen. Tämän toiminnon avulla lähtevien erien arvo vähennetään yllä mainitun vähennysfunktion kertyneestä arvosta. Esimerkiksi, jos laskemme vastaavien avainten saapuvien arvojen summan, sitten lähteville erille vähennämme vastaavien avainten arvot (jos ne ovat läsnä nykyisessä erässä, ohitetaan).
ikkunaKesto : Aikayksiköt erien ryhmittelemiseksi, tämän tulisi olla kerrannaiserä.
slideDuration : Laskennan aikayksiköt, tämän on oltava kerrannaiserä. osiot : Osioitin, jota käytetään tuloksena olevan DStreamin tallentamiseen. Lisätietoja osioinnista lue Tämä .
filterFunc : Toiminto suodattaa vanhentuneet avain-arvo-parit, esimerkiksi jos emme saa päivitystä avaimelle joskus, saatamme haluta poistaa sen.
Tässä on ohjelmoida laskea pistorasialta tulevat sanat. Olemme käyttäneet yllä olevan toiminnon ylikuormitettua versiota, jonka ikkuna-aika on 4 sekuntia ja diaväli 2 sekuntia.
Seuraavassa blogissani kirjoitan koko istunnon seurannasta ja tarkistusosoitteesta.
Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun.
Aiheeseen liittyvät julkaisut:
Hajautettu välimuisti lähetysmuuttujien kanssa
kuinka käyttää sas-ohjelmistoa