Apache Storm 2.0 hajautettu laskentajärjestelmä saatavilla

Näki valon hajautetun tapahtumankäsittelyjärjestelmän merkittävä julkaisu Apache Storm 2.0, joka on huomattava siirtyessään uuteen Java-arkkitehtuuriin aiemmin käytetyn Clojure-kielen sijaan.

Projektin avulla voit järjestää erilaisten tapahtumien taatun käsittelyn reaaliajassa. Stormilla voidaan esimerkiksi analysoida tietovirtoja reaaliajassa, suorittaa koneoppimistehtäviä, organisoida jatkuvaa laskentaa, toteuttaa RPC, ETL jne. Järjestelmä tukee klusterointia, vikasietoisten konfiguraatioiden luomista, taattua tietojenkäsittelytilaa ja sillä on korkea suorituskyky, joka riittää käsittelemään yli miljoona pyyntöä sekunnissa yhdessä klusterisolmussa.

Tuetaan integrointia erilaisten jononkäsittelyjärjestelmien ja tietokantatekniikoiden kanssa. Storm-arkkitehtuuri sisältää jäsentämättömien, jatkuvasti päivittyvien tietovirtojen vastaanottamisen ja käsittelyn mielivaltaisilla monimutkaisilla prosessoreilla, joilla on mahdollisuus osioida eri laskentavaiheiden välillä. Projekti siirrettiin Apache-yhteisöön sen jälkeen, kun Twitter osti BackTypen, yrityksen, joka alun perin kehitti puitteet. Käytännössä Stormia käytettiin BackTypessä analysoimaan tapahtumien heijastusta mikroblogeissa vertaamalla lennossa uusia twiittejä ja niissä käytettyjä linkkejä (esimerkiksi arvioitiin kuinka Twitterissä julkaistut ulkoiset linkit tai ilmoitukset ovat uudelleenlähetetty muiden osallistujien toimesta. ).

Stormin toimivuutta verrataan Hadoop-alustaan, jonka keskeisin ero on, että dataa ei tallenneta varastoon, vaan se syötetään ulkopuolelta ja käsitellään reaaliajassa. Stormilla ei ole sisäänrakennettua tallennuskerrosta ja analyyttistä kyselyä aletaan soveltaa saapuviin tietoihin, kunnes se peruutetaan (kun Hadoop käyttää rajallisia MapReduce-töitä, Storm käyttää ajatusta "topologioiden" jatkuvasta ajamisesta). Käsittelijöiden suorittaminen voidaan jakaa useille palvelimille - Storm rinnastaa automaattisesti työn eri klusterin solmujen säikeiden kanssa.

Järjestelmä on alun perin kirjoitettu Clojuressa ja toimii JVM-virtuaalikoneen sisällä. Apache Foundation on käynnistänyt aloitteen Stormin siirtämiseksi uuteen Java-kielellä kirjoitettuun ytimeen, jonka tuloksia ehdotetaan Apache Storm 2.0:n julkaisussa. Kaikki alustan peruskomponentit kirjoitetaan uudelleen Javalla. Clojuren kirjoituskäsittelijöiden tuki on säilytetty, mutta sitä tarjotaan nyt sidosten muodossa. Storm 2.0.0 vaatii Java 8:n. Monisäikeinen käsittelymalli on suunniteltu kokonaan uudelleen, mikä mahdollistaa saavuttaa huomattava suorituskyvyn kasvu (joissakin topologioissa viiveet vähenivät 50-80 %).

Apache Storm 2.0 hajautettu laskentajärjestelmä saatavilla

Uusi versio tarjoaa myös uuden kirjoitetun Streams API:n, jonka avulla voit määrittää käsittelijöitä käyttämällä toiminnallisia ohjelmointityylisiä toimintoja. Uusi API on toteutettu tavallisen perus-API:n päälle ja tukee toimintojen automaattista yhdistämistä niiden käsittelyn optimoimiseksi. Ikkunatoimintojen ikkunasovellusliittymä on lisännyt tuen tilan tallentamiseen ja palauttamiseen taustajärjestelmässä.

Tuki lisäresurssien huomioon ottamiseen päätöksiä tehtäessä ei rajoitu
CPU ja muisti, kuten verkko- ja GPU-asetukset. Useita parannuksia on tehty integroinnin varmistamiseksi alustan kanssa Kafka. Kulunvalvontajärjestelmää on laajennettu sisältämään mahdollisuuden luoda järjestelmänvalvojaryhmiä ja delegointitunnuksia. Lisätty parannuksia liittyen SQL- ja mittaustukeen. Järjestelmänvalvojan käyttöliittymään on ilmestynyt uusia komentoja klusterin tilan virheenkorjaukseen.

Stormin käyttöalueet:

  • Uusien tietovirtojen tai tietokantapäivitysten käsittely reaaliajassa;
  • Jatkuva tietojenkäsittely: Storm voi suorittaa jatkuvia kyselyitä ja käsitellä jatkuvia tietovirtoja toimittaen käsittelytulokset asiakkaalle reaaliajassa.
  • Distributed Remote Procedure Call (RPC): Stormia voidaan käyttää resurssiintensiivisten kyselyiden rinnakkaiseen suorittamiseen. Työ ("topologia") Stormissa on solmuille hajautettu funktio, joka odottaa käsiteltävien viestien saapumista. Vastaanotettuaan viestin funktio käsittelee sen paikallisessa kontekstissa ja palauttaa tuloksen. Esimerkki hajautetun RPC:n käytöstä voisi olla hakukyselyiden käsittely rinnakkain tai toimintojen suorittaminen suurelle joukkojoukolle.

Myrskyn ominaisuudet:

  • Yksinkertainen ohjelmointimalli, joka yksinkertaistaa huomattavasti reaaliaikaista tietojenkäsittelyä;
  • Tuki kaikille ohjelmointikielille. Moduulit ovat saatavilla Javalle, Rubylle ja Pythonille, mukauttaminen muille kielille on helppoa erittäin yksinkertaisen viestintäprotokollan ansiosta, joka vaatii tukeakseen noin 100 koodiriviä;
  • Vikasietoisuus: tietojenkäsittelytyön suorittamiseksi sinun on luotava jar-tiedosto koodilla. Storm jakaa tämän jar-tiedoston itsenäisesti klusterin solmuille, yhdistää siihen liittyvät käsittelijät ja järjestää seurannan. Kun työ on valmis, koodi poistetaan automaattisesti käytöstä kaikissa solmuissa.
  • Vaakasuuntainen skaalautuvuus. Kaikki laskelmat suoritetaan rinnakkaistilassa; kun kuormitus kasvaa, riittää yksinkertaisesti liittää uudet solmut klusteriin;
  • Luotettavuus. Storm varmistaa, että jokainen saapuva viesti käsitellään kokonaan vähintään kerran. Viesti käsitellään vain kerran, jos kaikkien käsittelijöiden läpi kulkemisessa ei ole virheitä; jos ongelmia ilmenee, epäonnistuneet käsittelyyritykset toistetaan.
  • Nopeus. Stormin koodi on kirjoitettu korkeaa suorituskykyä ajatellen ja käyttää järjestelmää nopeaan asynkroniseen viestintään ZeroMQ.

Lähde: opennet.ru

Lisää kommentti