Saadaval on jaotatud arvutussüsteem Apache Storm 2.0

Nägi ilmavalgust märkimisväärne sündmuste jaotamise süsteemi väljund Apache Storm 2.0, mis on märkimisväärne üleminek uuele arhitektuurile, mis on teostatud Java keeles, selle asemel, et kasutada varem Clojure keelt.

Projekt võimaldab korraldada erinevate sündmuste garanteeritud töötlemist reaalajas. Näiteks saab Stormi kasutada reaalajas andmevoogude analüüsimiseks, masinõppe ülesannete täitmiseks, pidevate arvutuste korraldamiseks, RPC, ETL jms rakendamiseks. Süsteem toetab klasterdamist, talitluspidevuse loomist, garanteeritud andmete töötlemise režiimi ja omab kõrget jõudlust, piisavat enam kui miljoni päringu töötlemiseks sekundis ühe klastrisõlme kohta.

Toetatakse integreerimist erinevate järjekorrateenuste ja andmebaastehnoloogiatega. Stormi arhitektuur eeldab struktuurimata, pidevalt värskendatavate andmevoogude vastuvõtmist ja töötlemist, kasutades suvalisi keerulisi töötlejaid, võimaldades erinevate arvutusetappide vahel jaotamist. Projekt oli edastatud Apache kogukonnale pärast seda, kui Twitter omandas BackType'i, algselt raamistikku arendanud ettevõttes. Praktikas on Stormi kasutatud BackType'is sündmuste peegeldamise analüüsimiseks mikrobloomides, sidudes reaalajas uusi tweete ja neis kasutatud linke (näiteks hinnati, kuidas välised lingid või Twitteris avaldatud teadanded teiste kasutajate poolt edastatakse).

Stormi funktsionaalsus sarnaneb Hadoopi platvormiga, kuid peamine erinevus seisneb selles, et andmed ei ole salvestatud ja neid töödeldakse reaalajas. Stormis ei ole sisseehitatud ladustamise taset ning analüüsipäring kehtib saabuvatele andmetele, kuni see on tühistatud (samal ajal kui Hadoopis kasutatakse lõplikku aega nõudvaid MapReduce-töid, rakendab Storm pidevalt täidetavaid „topoloogiaid“). Töödeldavad ülesanded võivad olla jaotatud mitme serveri vahel — Storm jagab voogude töötlemise automaatselt erinevate klastrite sõlmede vahel.

Alguses kirjutati süsteem Clojure'i keeles ja see käitab JVM-i virtuaalmasinas. Apache'i fondis käivitus algatus Stormi tõlkimiseks uuele tuumale, mis on kirjutatud Java-s, mille tulemused on esitatud Apache Storm 2.0 väljaandes. Kõik platvormi põhikomponendid on ümber kirjutatud Java-s. Clojure'is ülesannete kirjutamise toetus on säilinud, kuid nüüd pakutakse seda sidemete kujul. Storm 2.0.0 tööks on vajalik Java 8. Täielikult on ümber töötatud mitme lõime töötlemise mudel, mis võimaldas saavutada märkimisväärset jõudluse tõusu (mõnede topoloogiate puhul on viivitused lühenenud 50-80%).

Saadaval on jaotatud arvutussüsteem Apache Storm 2.0

Uues versioonis on samuti esitatud uus tüübitud API Streams, mis võimaldab määrata töötlejat, kasutades funktsionaalse programmeerimise stiilis operatsioone. Uus API on rakendatud tavalise aluse API peale ja toetab operatsioonide automaatset ühendamist, et nende töötlemist optimeerida. API aknatoimingute jaoks on aknas toimingute salvestamise ja taastamise toetus lisatud tagaplaanile.

Käivitamisse süstematiseerijasse on lisatud tugi täiendavate ressursside arvesse võtmiseks otsuste tegemisel, mis ei piirdu ainult
CPU ja mälu, vaid ka võrgu ja GPU parameetritega. On tehtud ulatuslikke täiustusi, mis on seotud platvormiga integreerimise tagamisega. KafkaJuhtimist kontrolliva süsteemi tegevusala on laiendatud, kus on nüüd võimalik luua administraatorigruppesid ja delegeerida token'e. Lisatud on täiustusi, mis on seotud SQL-i ja mõõdikute toega. Administraatori liideses on uusi käsklusi klastriseisundi tõrkeotsimiseks.

Stormi rakendusalad:

  • Uute andmevoogude või andmebaasi värskenduste reaalajas töötlemine;
  • Jätkuvad arvutused: Storm võib täita järjepidevaid päringuid ja töödelda järjepidevaid vooge, edastades töötlemise tulemused kliendile reaalajas.
  • Jaotatud kaugprotseduuride väljakutsed (RPC): Stormi saab kasutada ressursimahukate päringute sooritamise paralleelsuse tagamiseks. Stormi tööülesanne ("topoloogia") on jaotatud sõlmede funktsioon, mis ootab töödeldavate sõnumite saabumist. Pärast sõnumi vastuvõtmist töötleb funktsioon seda kohalikus kontekstis ja tagastab tulemuse. Jaotatud RPC kasutamise näiteks võib olla paralleelne otsingupäringute töötlemine või operatsioonide tegemine suure andmehulkade komplekti üle.

Stormi omadused:

  • Lihtne programmeerimismudel, mis oluliselt lihtsustab reaalajas andmete töötlemist;
  • Toetab kõiki programmeerimiskeeli. On olemas moodulid Java, Ruby ja Python keelte jaoks, teiste keelte kohandamine ei valmista raskusi tänu väga lihtsale kommunikatsiooniprotokollile, mille toetamise rakendamiseks kulub umbes 100 rida koodi;
  • Tõrkehellitus: andmetöötluse ülesande käivitamiseks tuleb luua jar-fail koodiga. Storm levitab selle jar-faili automaatselt klastrite sõlmedes, ühendab sellega seotud töötlejad ja korraldab jälgimise. Ülesande lõpetamisel lülitatakse kood automaatselt välja kõikides sõlmedes;
  • Horisontaalne skaleeritavus. Kõik arvutused toimuvad paralleelselt, koormuse suurenedes piisab klastrisse uute sõlmede lisamisest;
  • Usaldusväärsus. Storm tagab, et iga saabunud sõnum töödeldakse täielikult vähemalt korra. Sõnumit töödeldakse vaid siis, kui kõikide töötlejate läbimisel pole vigu; probleemide korral kordatakse ebaõnnestunud töötlemiskatsed.
  • Kiirus. Stormi kood on kirjutatud kõrge jõudluse nimel ja kasutab kiireks asünkroonseks sõnumivahetuseks süsteemi ZeroMQ.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster