Dostupan distribuirani računalni sustav Apache Storm 2.0

ugledao svjetlo značajno izdanje distribuiranog sustava za obradu događaja Apache Storm 2.0, poznat po prijelazu na novu arhitekturu implementiranu u Javi, umjesto prethodno korištenog jezika Clojure.

Projekt vam omogućuje organiziranje zajamčene obrade različitih događaja u stvarnom vremenu. Na primjer, Storm se može koristiti za analizu protoka podataka u stvarnom vremenu, pokretanje zadataka strojnog učenja, organiziranje kontinuiranog računarstva, implementaciju RPC-a, ETL-a itd. Sustav podržava klasteriranje, kreiranje konfiguracija otpornih na greške, zajamčeni način obrade podataka i ima visoke performanse, dovoljne za obradu više od milijun zahtjeva u sekundi na jednom čvoru klastera.

Podržana je integracija s različitim sustavima za obradu čekanja i tehnologijama baza podataka. Arhitektura Storm uključuje primanje i obradu nestrukturiranih, stalno ažuriranih tokova podataka korištenjem proizvoljnih složenih procesora s mogućnošću podjele između različitih faza izračuna. Projekt je predan Apache zajednici nakon što je Twitter kupio BackType, tvrtku koja je izvorno razvila okvir. U praksi se Storm koristio u BackTypeu za analizu odraza događaja u mikroblogovima, uspoređujući u hodu nove tweetove i poveznice korištene u njima (primjerice, procijenjeno je kako su vanjske poveznice ili objave objavljene na Twitteru reemitirali drugi sudionici ).

Funkcionalnost Storma uspoređuje se s platformom Hadoop, a ključna razlika je u tome što se podaci ne pohranjuju u skladište, već se unose eksterno i obrađuju u stvarnom vremenu. Storm nema ugrađeni sloj za pohranu i analitički upit počinje se primjenjivati ​​na dolazne podatke dok se ne otkaže (dok Hadoop koristi MapReduce poslove s ograničenim vremenom, Storm koristi ideju kontinuiranog pokretanja "topologija"). Izvršenje rukovatelja može se distribuirati na nekoliko poslužitelja - Storm automatski paralelizira rad s nitima na različitim čvorovima klastera.

Sustav je izvorno napisan u Clojureu i radi unutar JVM virtualnog stroja. Zaklada Apache pokrenula je inicijativu za premještanje Storma na novu jezgru napisanu u Javi, a rezultati su predloženi u izdanju Apache Storma 2.0. Sve osnovne komponente platforme su prepisane u Javi. Podrška za rukovatelje pisanjem u Clojureu je zadržana, ali se sada nudi u obliku povezivanja. Storm 2.0.0 zahtijeva Java 8. Višenitni model obrade potpuno je redizajniran, dopuštajući postići primjetno povećanje performansi (za neke topologije kašnjenja su smanjena za 50-80%).

Dostupan distribuirani računalni sustav Apache Storm 2.0

Nova verzija također nudi novi tipizirani Streams API koji vam omogućuje definiranje rukovatelja korištenjem operacija u stilu funkcionalnog programiranja. Novi API implementiran je povrh standardnog osnovnog API-ja i podržava automatsko spajanje operacija radi optimizacije njihove obrade. Windowing API za operacije s prozorima dodao je podršku za spremanje i vraćanje stanja u pozadini.

Podrška za uzimanje u obzir dodatnih resursa pri donošenju odluka koje nisu ograničene na
CPU i memorija, kao što su mrežne i GPU postavke. Učinjen je velik broj poboljšanja kako bi se osigurala integracija s platformom Kafka. Sustav kontrole pristupa je proširen kako bi uključio mogućnost stvaranja administratorskih grupa i delegiranja tokena. Dodana poboljšanja koja se odnose na podršku za SQL i metriku. U administratorskom sučelju pojavile su se nove naredbe za otklanjanje pogrešaka stanja klastera.

Područja primjene za Storm:

  • Obrada tokova novih podataka ili ažuriranja baze podataka u stvarnom vremenu;
  • Kontinuirano računalstvo: Storm može pokretati kontinuirane upite i obrađivati ​​kontinuirane tokove, isporučujući rezultate obrade klijentu u stvarnom vremenu.
  • Distribuirani poziv udaljene procedure (RPC): Storm se može koristiti za pružanje paralelnog izvršavanja upita koji zahtijevaju velike resurse. Posao ("topologija") u Stormu je funkcija raspoređena po čvorovima koja čeka da stignu poruke koje treba obraditi. Nakon primitka poruke, funkcija je obrađuje u lokalnom kontekstu i vraća rezultat. Primjer korištenja distribuiranog RPC-a bio bi paralelna obrada upita za pretraživanje ili izvođenje operacija na velikom skupu skupova.

Značajke Storm-a:

  • Jednostavan programski model koji uvelike pojednostavljuje obradu podataka u stvarnom vremenu;
  • Podrška za sve programske jezike. Moduli su dostupni za Javu, Ruby i Python, prilagodba za druge jezike je laka zahvaljujući vrlo jednostavnom komunikacijskom protokolu koji zahtijeva oko 100 redaka koda za podršku;
  • Tolerancija grešaka: da biste pokrenuli posao obrade podataka, trebate generirati jar datoteku s kodom. Storm će neovisno distribuirati ovu jar datoteku po čvorovima klastera, povezati s njom povezane rukovatelje i organizirati nadzor. Kada posao završi, kod će se automatski onemogućiti na svim čvorovima;
  • Horizontalna skalabilnost. Svi izračuni izvode se u paralelnom načinu rada; kako se opterećenje povećava, dovoljno je jednostavno povezati nove čvorove s klasterom;
  • Pouzdanost. Storm osigurava da je svaka dolazna poruka u potpunosti obrađena barem jednom. Poruka će se obraditi samo jednom ako nema grešaka prilikom prolaska kroz sve rukovatelje; ako se pojave problemi, neuspješni pokušaji obrade će se ponoviti.
  • Ubrzati. Stormov kod je napisan imajući na umu visoke performanse i koristi sustav za brzo asinkrono slanje poruka ZeroMQ.

Izvor: opennet.ru

Dodajte komentar