Yra „Apache Storm 2.0“ paskirstyta skaičiavimo sistema

pamatė šviesą reikšmingas paskirstytų įvykių apdorojimo sistemos leidimas Apache Storm 2.0, pasižymintis perėjimu prie naujos architektūros, įdiegtos Java, o ne anksčiau naudotos Clojure kalbos.

Projektas leidžia organizuoti garantuotą įvairių įvykių apdorojimą realiu laiku. Pavyzdžiui, „Storm“ galima naudoti duomenų srautams analizuoti realiuoju laiku, vykdyti mašininio mokymosi užduotis, organizuoti nuolatinį skaičiavimą, įdiegti RPC, ETL ir kt. Sistema palaiko klasterizavimą, gedimams atsparių konfigūracijų kūrimą, garantuotą duomenų apdorojimo režimą ir pasižymi dideliu našumu, kurio pakanka apdoroti daugiau nei milijoną užklausų per sekundę viename klasterio mazge.

Palaikoma integracija su įvairiomis eilių apdorojimo sistemomis ir duomenų bazių technologijomis. Storm architektūra apima nestruktūrizuotų, nuolat atnaujinamų duomenų srautų priėmimą ir apdorojimą naudojant savavališkus sudėtingus procesorius su galimybe skaidyti skirtingus skaičiavimo etapus. Projektas buvo perduotas „Apache“ bendruomenei po to, kai „Twitter“ įsigijo „BackType“ – bendrovę, kuri iš pradžių sukūrė sistemą. Praktiškai Storm buvo naudojamas BackType analizuojant įvykių atspindį mikrotinklaraščiuose, lyginant naujus tviterius ir juose naudojamas nuorodas (pavyzdžiui, buvo įvertinta, kaip išorines nuorodas ar pranešimus, paskelbtus Twitter, retransliavo kiti dalyviai ).

„Storm“ funkcionalumas lyginamas su „Hadoop“ platforma, o pagrindinis skirtumas yra tas, kad duomenys nėra saugomi sandėlyje, o gaunami iš išorės ir apdorojami realiuoju laiku. „Storm“ neturi integruoto saugojimo sluoksnio, o analitinė užklausa pradedama taikyti gaunamiems duomenims, kol jie atšaukiami (o „Hadoop“ naudoja riboto laiko „MapReduce“ užduotis, o „Storm“ naudoja nuolatinio „topologijų“ paleidimo idėją). Drovių vykdymas gali būti paskirstytas keliuose serveriuose – Storm automatiškai lygiagretina darbą su gijomis skirtinguose klasterio mazguose.

Sistema iš pradžių buvo parašyta Clojure ir veikia JVM virtualioje mašinoje. „Apache Foundation“ pradėjo iniciatyvą perkelti „Storm“ į naują „Java“ parašytą branduolį, kurio rezultatai siūlomi išleidžiant „Apache Storm 2.0“. Visi pagrindiniai platformos komponentai yra perrašyti Java kalba. Klojure rašto tvarkyklių palaikymas išliko, bet dabar siūlomas įrišimo forma. „Storm 2.0.0“ reikalinga „Java 8“. Kelių gijų apdorojimo modelis buvo visiškai perkurtas, todėl pasiekti pastebimas našumo padidėjimas (kai kurioms topologijoms vėlavimai sumažėjo 50–80%).

Yra „Apache Storm 2.0“ paskirstyta skaičiavimo sistema

Naujoji versija taip pat siūlo naują įvestą Streams API, leidžiančią apibrėžti tvarkykles naudojant funkcinio programavimo stiliaus operacijas. Naujoji API įdiegta virš standartinės bazinės API ir palaiko automatinį operacijų sujungimą, siekiant optimizuoti jų apdorojimą. Langų operacijų langų API papildė būsenos išsaugojimo ir atkūrimo užpakalinėje programoje palaikymą.

Parama atsižvelgti į papildomus išteklius priimant sprendimus, neapsiribojant
CPU ir atmintis, pvz., tinklo ir GPU nustatymai. Siekiant užtikrinti integraciją su platforma, atlikta daug patobulinimų Kafka. Prieigos kontrolės sistema buvo išplėsta, kad būtų galima kurti administratoriaus grupes ir deleguoti žetonus. Pridėta patobulinimų, susijusių su SQL ir metrikos palaikymu. Administratoriaus sąsajoje pasirodė naujos komandos, skirtos klasterio būsenai derinti.

Storm taikymo sritys:

  • Naujų duomenų srautų ar duomenų bazių atnaujinimų apdorojimas realiu laiku;
  • Nuolatinis skaičiavimas: Storm gali vykdyti nuolatines užklausas ir apdoroti nuolatinius srautus, realiuoju laiku pateikdama apdorojimo rezultatus klientui.
  • Paskirstytas nuotolinio procedūrų iškvietimas (RPC): „Storm“ gali būti naudojamas lygiagrečiam daug išteklių reikalaujančių užklausų vykdymui. Užduotis („topologija“) sistemoje „Storm“ yra mazguose paskirstyta funkcija, kuri laukia, kol ateis pranešimai, kuriuos reikia apdoroti. Gavusi pranešimą, funkcija jį apdoroja vietiniame kontekste ir grąžina rezultatą. Paskirstyto RPC naudojimo pavyzdys būtų lygiagrečiai apdoroti paieškos užklausas arba atlikti operacijas su dideliu rinkinių rinkiniu.

Audros ypatybės:

  • Paprastas programavimo modelis, kuris labai supaprastina duomenų apdorojimą realiuoju laiku;
  • Bet kokių programavimo kalbų palaikymas. Moduliai yra Java, Ruby ir Python, pritaikymas kitoms kalboms yra lengvas dėl labai paprasto ryšio protokolo, kuriam palaikyti reikia apie 100 kodo eilučių;
  • Gedimų tolerancija: norėdami paleisti duomenų apdorojimo užduotį, turite sugeneruoti jar failą su kodu. Storm savarankiškai paskirstys šį jar failą tarp klasterio mazgų, sujungs su juo susijusias tvarkykles ir organizuos stebėjimą. Kai darbas bus baigtas, kodas bus automatiškai išjungtas visuose mazguose;
  • Horizontalus mastelio keitimas. Visi skaičiavimai atliekami lygiagrečiu režimu, didėjant apkrovai pakanka tiesiog prijungti naujus mazgus prie klasterio;
  • Patikimumas. Storm užtikrina, kad kiekvienas gaunamas pranešimas būtų visiškai apdorotas bent kartą. Pranešimas bus apdorojamas tik vieną kartą, jei einant per visus tvarkykles nebus klaidų; jei kils problemų, nesėkmingi apdorojimo bandymai bus kartojami.
  • Greitis. Storm kodas parašytas turint omenyje didelį našumą ir naudoja sistemą greitam asinchroniniam pranešimų siuntimui ZeroMQ.

Šaltinis: opennet.ru

Добавить комментарий