Saadaval on Apache Storm 2.0 hajutatud arvutussüsteem

Tuli välja märkimisväärne sündmuste hajutatud töötlemise süsteemi versioon Apache Storm 2.0, mille tähelepanuväärne üleminek uuele arhitektuurile, mis on rakendatud Java keeles, asendas varem kasutatud Clojure keelt.

Projekt võimaldab korraldada erinevate sündmuste tagatud töötlemist reaalajas. Näiteks saab Stormi kasutada reaalajas andmevoogude analüüsimiseks, masinõppes ülesannete täitmiseks, pidevate arvutuste korraldamiseks, RPC, ETL jne. Süsteem toetab klasterdamist, katkestuskindlate konfiguratsioonide loomist, tagatud andmete töötlemise režiimi ja omab kõrget jõudlust, piisavat üle miljoni päringu töötlemiseks sekundis ühel klastrisõlmel.

Toetatakse integreerimist erinevate järjekordade töötlemise süsteemide ja andmebaasi tehnoloogiatega. Stormi arhitektuur tähendab, et see võtab vastu ja töötleb struktureerimata pidevalt uuendatavaid andmevooge, kasutades mis tahes keerulisi töötlejaid, võimaldades samal ajal andmete sektsioonide vahel erinevate arvutuste etappide vahel. Projekt anti Apache kogukonnale pärast Twitteri ettevõtte BackType'i omandamist, mis algselt arendas raamistikku. Praktikas on Stormi kasutatud BackType'is sündmuste peegeldamise analüüsimiseks mikroblogides, sidudes reaalajas uusi tweet'e ja nende linke (näiteks hinnati, kuidas välised lingid või Twitteris avaldatud ankrud taaslevivad teiste osalejate poolt).

Stormi funktsionaalsus võrreldakse Hadoopi platvormiga, kusjuures peamine erinevus on see, et andmed ei asu ladustamisruumis, vaid tulevad väljastpoolt ja neid töödeldakse reaalajas. Stormis ei ole sisseehitatud vahekihti ladustamise korraldamiseks ja analüütiline päring rakendatakse vastuvõetud andmetele, kuni see tühistatakse (kui Hadoopis kasutatakse piiratud aja jooksul toimivaid MapReduce-töid, siis Stormis rakendatakse pidevalt täidetavaid 'topoloogiaid'). Töötlejate täitmine saab olla jaotatud mitmele serverile — Storm jagab automaatselt voogude töötlemise erinevatele klastrisõlmedele.

Alguses oli süsteem kirjutatud Clojure keeles ja käivitati virtuaalses masinas JVM. Apache'i fondis käidi algatus Stormi üleviimiseks uuele tuumale, mis on kirjutatud Java keeles, mille tulemused on esitatud Apache Storm 2.0 väljaandes. Kõik platvormi põhikomponendid on ümber kirjutatud Java keeles. Toetust Clojure keeles töötlejate kirjutamiseks on säilitatud, kuid see pakutakse nüüd sidemete kujul. Storm 2.0.0 käitamiseks on vajalik Java 8 olemasolu. Palju on täiustatud mitme lõime töötlemise mudelit, mis võimaldab saavutada täiendavat jõudluskasvu (teatud topoloogiate puhul on latentsus vähenenud 50-80%).

Saadaval on Apache Storm 2.0 hajutatud arvutussüsteem

Uues versioonis on samuti pakutud uut tüüpi API Streams, mis võimaldab määrata töötlejaid, kasutades funktsionaalset programmeerimist. Uus API on rakendatud ettevõtte põhitegevuse API kohal ja toetab operatsioonide automaatset ühendamist nende töötlemise optimeerimiseks. API Windowing’is, mis on mõeldud aknaoperatsioonide jaoks, on lisatud tugi oleku salvestamiseks ja taastamiseks tagaplaanil.

Töötleja käivitamise ajakavadisse on lisatud tugi lisavaramete arvestamiseks otsuste tegemisel, mis ei piirdu
CPU ja mälu, vaid hõlmavad ka võrgu ja GPU parameetreid. On tehtud palju täiustusi seoses integratsiooni võimaldamisega platvormiga Kafka. Juurdepääsukontrolli süsteem on laienenud, lisades võimaluse luua administraatorigruppide ja delegeerimise tokenite loomine. On lisatud täiustusi, mis on seotud SQL-i ja mõõdikute toetamisega. Administraatori liideses on lisatud uued käsud klastrite oleku tõrkeotsimiseks.

Stormi rakendusalad:

  • Reaalajas uute andmete voogude või andmebaasi värskenduste töötlemine;
  • Jätkuvad arvutused: Storm suudab täita pidevaid päringuid ja töödelda pidevaid vooge, edastades töötlemise tulemused kliendile reaalajas.
  • Jaotatud kaugprotseduurikutsed (RPC): Storm võib kasutada ressursinõudlike päringute paralleelse täitmise tagamiseks. Stormis on ülesanne („topoloogia“) jaotatud sõlmede funktsioon, mis ootab sõnumite vastuvõtmist, mida tuleb töödelda. Pärast sõnumi vastuvõtmist töötab funktsioon selle lokaalsetes kontekstides ja tagastab tulemuse. Jaotatud RPC kasutamise näiteks on paralleelne otsingupäringute töötlemine või operatsioonide teostamine suure hulga hulkadega.

Stormi omadused:

  • Lihtne programmeerimisalkteil, mis oluliselt lihtsustab andmete töötlemist reaalajas;
  • Toetab kõiki programmeerimiskeeli. Saadaval on moodulid Java, Ruby ja Python keelele, teiste keelte kohandamine ei ole keeruline, tänu väga lihtsale kommunikatsiooniprotokollile, mille jaoks on toetuse rakendamiseks vaja umbes 100 koodi rida;
  • Vigade taluvus: andmete töötlemise ülesande käivitamiseks peab looma jar-faili koodiga. Storm levitab selle jar-faili sõlmede vahel, ühendab seotud töötlejad ja korraldab jälgimise. Pärast ülesande lõppemist kodeeritakse kõigis sõlmedes automaatselt välja;
  • Horisontaalne skaleeritavus. Kõik arvutused tehakse paralleelselt, koormuse suurenemise korral piisab klastrisse uute sõlmede ühendamisest;
  • Usaldusväärsus. Storm garanteerib, et iga saabuv sõnum töödeldakse täielikult vähemalt ühe korra. Sõnumit töödeldakse ainult siis, kui kõikide töötlejate käigus ei esine vigu, kui probleeme tekib, proovitakse ebaõnnestunud töötlemisi korrata.
  • Kiirus. Stormi kood on kirjutatud kõrge jõudluse silmas pidades ja kasutab kiireks asünkroonseks sõnumivahetuseks süsteemi. ZeroMQ.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster