Na voljo je porazdeljeni računalniški sistem Apache Storm 2.0

Videl luč pomembna izdaja porazdeljenega sistema za obdelavo dogodkov Apache Storm 2.0, znan po prehodu na novo arhitekturo, implementirano v Javi, namesto prej uporabljenega jezika Clojure.

Projekt vam omogoča, da organizirate zajamčeno obdelavo različnih dogodkov v realnem času. Na primer, Storm se lahko uporablja za analizo podatkovnih tokov v realnem času, izvajanje nalog strojnega učenja, organizacijo neprekinjenega računalništva, implementacijo RPC, ETL itd. Sistem podpira združevanje v gruče, ustvarjanje konfiguracij, odpornih na napake, zajamčen način obdelave podatkov in ima visoko zmogljivost, ki zadostuje za obdelavo več kot milijon zahtev na sekundo na enem vozlišču gruče.

Podprta je integracija z različnimi sistemi za obdelavo čakalnih vrst in tehnologijami baz podatkov. Arhitektura Storm vključuje sprejemanje in obdelavo nestrukturiranih, nenehno posodobljenih podatkovnih tokov z uporabo poljubno kompleksnih procesorjev z možnostjo razdelitve med različnimi stopnjami izračunov. Projekt je bil predan skupnosti Apache, potem ko je Twitter kupil BackType, podjetje, ki je prvotno razvilo ogrodje. Storm je bil v praksi uporabljen v BackType za analizo odraza dogajanja v mikroblogih s sprotno primerjavo novih tvitov in v njih uporabljenih povezav (ocenjeno je bilo na primer, kako so zunanje povezave ali obvestila, objavljena na Twitterju, ponovno predvajali drugi udeleženci ).

Funkcionalnost Storma primerjajo s platformo Hadoop, pri čemer je ključna razlika v tem, da se podatki ne shranjujejo v skladišču, temveč se zaužijejo od zunaj in obdelujejo v realnem času. Storm nima vgrajenega sloja za shranjevanje in analitična poizvedba se začne uporabljati za vhodne podatke, dokler ni preklicana (medtem ko Hadoop uporablja opravila MapReduce s končnim časom, Storm uporablja zamisel o neprekinjenem izvajanju »topologij«). Izvajanje obdelovalcev se lahko porazdeli na več strežnikov - Storm samodejno vzporedi delo z nitmi na različnih vozliščih gruče.

Sistem je bil prvotno napisan v Clojure in deluje znotraj virtualnega stroja JVM. Fundacija Apache je sprožila pobudo za selitev Storma na novo jedro, napisano v Javi, rezultati tega pa so predlagani v izdaji Apache Storm 2.0. Vse osnovne komponente platforme so prepisane v Javi. Podpora za pisalne ročnike v Clojure je bila ohranjena, vendar je zdaj na voljo v obliki vezav. Storm 2.0.0 zahteva Javo 8. Model večnitne obdelave je bil popolnoma preoblikovan, kar omogoča doseči opazno povečanje zmogljivosti (za nekatere topologije so se zamude zmanjšale za 50-80%).

Na voljo je porazdeljeni računalniški sistem Apache Storm 2.0

Nova različica ponuja tudi nov vtipkani Streams API, ki vam omogoča definiranje rokovalcev z uporabo operacij v slogu funkcionalnega programiranja. Novi API je implementiran poleg standardnega osnovnega API-ja in podpira samodejno združevanje operacij za optimizacijo njihove obdelave. API Windowing za okenske operacije je dodal podporo za shranjevanje in obnavljanje stanja v ozadju.

Podpora za upoštevanje dodatnih sredstev pri odločanju ne omejeno na
CPE in pomnilnik, kot so nastavitve omrežja in GPE. Za zagotovitev integracije s platformo je bilo narejenih veliko število izboljšav Kafka. Sistem za nadzor dostopa je bil razširjen tako, da vključuje možnost ustvarjanja skrbniških skupin in delegiranja žetonov. Dodane izboljšave v zvezi s podporo za SQL in metrike. V skrbniškem vmesniku so se pojavili novi ukazi za odpravljanje napak v stanju gruče.

Področja uporabe Storm:

  • Obdelava tokov novih podatkov ali posodobitev baze podatkov v realnem času;
  • Neprekinjeno računalništvo: Storm lahko izvaja neprekinjene poizvedbe in obdeluje neprekinjene tokove, tako da odjemalcu v realnem času posreduje rezultate obdelave.
  • Distributed Remote Procedure Call (RPC): Storm se lahko uporablja za zagotavljanje vzporednega izvajanja poizvedb, ki zahtevajo veliko virov. Opravilo (»topologija«) v storitvi Storm je funkcija, porazdeljena po vozliščih, ki čaka na sporočila, ki jih je treba obdelati. Ko prejme sporočilo, ga funkcija obdela v lokalnem kontekstu in vrne rezultat. Primer uporabe porazdeljenega RPC bi bila vzporedna obdelava iskalnih poizvedb ali izvajanje operacij na velikem naboru nizov.

Lastnosti nevihte:

  • Preprost programski model, ki močno poenostavi obdelavo podatkov v realnem času;
  • Podpora za vse programske jezike. Moduli so na voljo za Javo, Ruby in Python, prilagoditev za druge jezike je enostavna zahvaljujoč zelo preprostemu komunikacijskemu protokolu, ki za podporo potrebuje približno 100 vrstic kode;
  • Odpornost na napake: če želite izvesti obdelavo podatkov, morate ustvariti datoteko jar s kodo. Storm bo neodvisno razdelil to datoteko jar po vozliščih gruče, povezal z njo povezane upravljalnike in organiziral nadzor. Ko je opravilo končano, bo koda samodejno onemogočena na vseh vozliščih;
  • Horizontalna razširljivost. Vsi izračuni se izvajajo v vzporednem načinu, ko se obremenitev poveča, je dovolj, da preprosto povežete nova vozlišča v gručo;
  • Zanesljivost. Storm zagotavlja, da je vsako dohodno sporočilo v celoti obdelano vsaj enkrat. Sporočilo bo obdelano samo enkrat, če pri prehodu skozi vse obdelovalce ni napak; če pride do težav, se neuspešni poskusi obdelave ponovijo.
  • Hitrost. Stormova koda je napisana z mislijo na visoko zmogljivost in uporablja sistem za hitro asinhrono sporočanje ZeroMQ.

Vir: opennet.ru

Dodaj komentar