Saadaval on hajutatud arvutussüsteem Apache Storm 2.0

Nägi valgust hajutatud sündmuste töötlemise süsteemi oluline väljalase Apache Storm 2.0, mis on märkimisväärne selle üleminekuga uuele Javas rakendatud arhitektuurile varem kasutatud Clojure keele asemel.

Projekt võimaldab korraldada erinevate sündmuste garanteeritud töötlemist reaalajas. Näiteks saab Stormi kasutada andmevoogude reaalajas analüüsimiseks, masinõppeülesannete täitmiseks, pideva andmetöötluse korraldamiseks, RPC, ETL-i jms juurutamiseks. Süsteem toetab klasterdamist, tõrketaluvate konfiguratsioonide loomist, garanteeritud andmetöötlusrežiimi ja on suure jõudlusega, mis on piisav rohkem kui miljoni päringu töötlemiseks sekundis ühes klastrisõlmes.

Toetatud on integreerimine erinevate järjekorratöötlussüsteemide ja andmebaasitehnoloogiatega. Stormi arhitektuur hõlmab struktureerimata, pidevalt uuendatavate andmevoogude vastuvõtmist ja töötlemist, kasutades suvalisi keerulisi protsessoreid, millel on võimalus arvutuste eri etappide vahel jaotada. Projekt viidi üle Apache'i kogukonnale pärast seda, kui Twitter omandas raamistiku algselt välja töötanud ettevõtte BackType. Praktikas kasutati Stormi BackType'is sündmuste kajastamise analüüsimiseks mikroblogides, võrreldes käigu pealt uusi säutse ja neis kasutatud linke (näiteks hinnati, kuidas Twitteris avaldatud välislinke või teadaandeid edastasid teised osalejad ).

Stormi funktsionaalsust võrreldakse Hadoopi platvormiga, mille põhierinevus seisneb selles, et andmeid ei salvestata lattu, vaid neelatakse väljastpoolt ja töödeldakse reaalajas. Stormil pole sisseehitatud salvestuskihti ja analüütilist päringut hakatakse rakendama sissetulevatele andmetele kuni selle tühistamiseni (sel ajal kui Hadoop kasutab piiratud aja MapReduce'i töid, kasutab Storm ideed pidevalt "topoloogiaid" käivitada). Käsitlejate täitmist saab jaotada mitme serveri vahel – Storm paralleeliseerib automaatselt töö erinevate klastri sõlmede lõimedega.

Süsteem kirjutati algselt Clojure'is ja töötab JVM-i virtuaalmasinas. Apache Foundation on käivitanud algatuse Stormi üleviimiseks uuele Java keeles kirjutatud tuumale, mille tulemused on esitatud Apache Storm 2.0 väljalaskes. Kõik platvormi põhikomponendid on Java keeles ümber kirjutatud. Clojure kirjatöötlejate tugi on säilinud, kuid nüüd pakutakse seda köitena. Storm 2.0.0 nõuab Java 8. Mitme lõimega töötlemismudel on täielikult ümber kujundatud, võimaldades saavutada jõudluse märgatav kasv (mõne topoloogia puhul vähenesid viivitused 50–80%).

Saadaval on hajutatud arvutussüsteem Apache Storm 2.0

Uus versioon pakub ka uut tüüpi Streams API-d, mis võimaldab määratleda töötlejaid, kasutades funktsionaalseid programmeerimisstiilis toiminguid. Uus API on rakendatud standardse baas-API peale ja toetab toimingute automaatset ühendamist nende töötlemise optimeerimiseks. Aknatoimingute jaoks mõeldud Windowing API on lisanud toe oleku salvestamiseks ja taastamiseks taustaprogrammis.

Toetus täiendavate ressurssidega arvestamiseks otsuste tegemisel mitte ainult
Protsessor ja mälu, nt võrgu- ja GPU seaded. Platvormiga integreerimise tagamiseks on tehtud palju täiustusi Kafka. Juurdepääsukontrolli süsteemi on laiendatud, et see hõlmaks võimalust luua administraatorirühmi ja delegeerimismärke. Lisatud SQL-i ja mõõdikute toega seotud täiustused. Administraatoriliidesesse on ilmunud uued käsud klastri oleku silumiseks.

Stormi rakendusvaldkonnad:

  • Uute andmete või andmebaasi värskenduste voogude töötlemine reaalajas;
  • Pidev andmetöötlus: Storm saab käitada pidevaid päringuid ja töödelda pidevaid vooge, edastades töötlemistulemused kliendile reaalajas.
  • Distributed Remote Procedure Call (RPC): Stormi saab kasutada ressursimahukate päringute paralleelseks täitmiseks. Stormi töö ("topoloogia") on sõlmede vahel jaotatud funktsioon, mis ootab töötlemist vajavate sõnumite saabumist. Pärast sõnumi saamist töötleb funktsioon seda kohalikus kontekstis ja tagastab tulemuse. Jaotatud RPC kasutamise näide oleks otsingupäringute paralleelne töötlemine või toimingute tegemine suure hulga komplektidega.

Tormi omadused:

  • Lihtne programmeerimismudel, mis lihtsustab oluliselt reaalajas andmetöötlust;
  • Mis tahes programmeerimiskeelte tugi. Java, Ruby ja Python jaoks on moodulid, teiste keelte jaoks kohandamine pole keeruline tänu väga lihtsale suhtlusprotokollile, mille toetamiseks on vaja umbes 100 koodirida;
  • Tõrketaluvus: andmetöötlustöö käivitamiseks peate genereerima koodiga jar-faili. Storm levitab seda jar-faili iseseisvalt klastri sõlmede vahel, ühendab sellega seotud töötlejad ja korraldab jälgimise. Kui töö on lõpetatud, keelatakse kood automaatselt kõigis sõlmedes;
  • Horisontaalne skaleeritavus. Kõik arvutused tehakse paralleelrežiimis, koormuse suurenedes piisab lihtsalt uute sõlmede ühendamisest klastriga;
  • Töökindlus. Storm tagab, et iga sissetulevat sõnumit töödeldakse täielikult vähemalt korra. Teadet töödeldakse üks kord, kui kõigi töötlejate läbimisel tõrkeid ei esine, probleemide ilmnemisel korratakse ebaõnnestunud töötlemiskatseid.
  • Kiirus. Stormi kood on kirjutatud suurt jõudlust silmas pidades ja kasutab süsteemi kiireks asünkroonseks sõnumivahetuseks ZeroMQ.

Allikas: opennet.ru

Lisa kommentaar