Dostupan je distribuirani računarski sistem Apache Storm 2.0

Videla sam svetlo značajno izdanje distribuiranog sistema za obradu događaja Apache Storm 2.0, prepoznatljiv po prelasku na novu arhitekturu implementiranu u Javi, umjesto na prethodno korišteni jezik Clojure.

Projekat vam omogućava da organizujete garantovanu obradu različitih događaja u realnom vremenu. Na primjer, Storm se može koristiti za analizu tokova podataka u realnom vremenu, pokretanje zadataka strojnog učenja, organiziranje kontinuiranog računanja, implementaciju RPC, ETL, itd. Sistem podržava grupisanje, kreiranje konfiguracija otpornih na greške, garantovani režim obrade podataka i ima visoke performanse, dovoljne za obradu više od milion zahteva u sekundi na jednom čvoru klastera.

Podržana je integracija sa različitim sistemima za obradu redova i tehnologijama baza podataka. Arhitektura Storm uključuje primanje i obradu nestrukturiranih, stalno ažuriranih tokova podataka koristeći proizvoljne složene procesore sa mogućnošću podjele između različitih faza proračuna. Projekat je predat zajednici Apache nakon što je Twitter preuzeo BackType, kompaniju koja je prvobitno razvila okvir. U praksi se Storm koristio u BackType-u za analizu odraza događaja u mikroblogovima, upoređujući u hodu nove tvitove i linkove koji se u njima koriste (na primjer, procijenjeno je kako su eksterne veze ili objave objavljene na Twitteru reemitovane od strane drugih učesnika ).

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

Sistem je prvobitno napisan u Clojure-u i radi unutar JVM virtuelne mašine. Fondacija Apache pokrenula je inicijativu za migraciju Storma na novi kernel napisan na Javi, čiji su rezultati predloženi u izdanju Apache Storm 2.0. Sve osnovne komponente platforme su prepisane u Javi. Podrška za rukovaoce pisanjem u Clojureu je zadržana, ali se sada nudi u obliku povezivanja. Storm 2.0.0 zahtijeva Java 8. Model višenitne obrade je potpuno redizajniran, omogućavajući postići primetno povećanje performansi (za neke topologije, kašnjenja su smanjena za 50-80%).

Dostupan je distribuirani računarski sistem Apache Storm 2.0

Nova verzija takođe nudi novi otkucani Streams API koji vam omogućava da definišete rukovaoce koristeći funkcionalne operacije u stilu programiranja. Novi API je implementiran na vrhu standardnog osnovnog API-ja i podržava automatsko spajanje operacija radi optimizacije njihove obrade. Windowing API za operacije prozora je dodao podršku za spremanje i vraćanje stanja u pozadinu.

Podrška za uzimanje u obzir dodatnih resursa prilikom donošenja odluka nije ograničena na
CPU i memorija, kao što su postavke mreže i GPU-a. Napravljen je veliki broj poboljšanja kako bi se osigurala integracija sa platformom Kafka. Sistem kontrole pristupa je proširen i uključuje mogućnost kreiranja administratorskih grupa i delegiranja tokena. Dodata poboljšanja vezana za SQL i podršku za metriku. Nove komande su se pojavile u administratorskom interfejsu za otklanjanje grešaka u stanju klastera.

Područja primjene za Oluju:

  • Obrada tokova novih podataka ili ažuriranja baze podataka u realnom vremenu;
  • Kontinuirano računanje: Storm može pokretati kontinuirane upite i obraditi kontinuirane tokove, isporučujući rezultate obrade klijentu u realnom vremenu.
  • Distributed Remote Procedure Call (RPC): Storm se može koristiti za pružanje paralelnog izvršavanja resursno intenzivnih upita. Posao (“topologija”) u Stormu je funkcija raspoređena po čvorovima koja čeka da stignu poruke koje treba obraditi. Nakon što primi poruku, 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.

Karakteristike oluje:

  • Jednostavan model programiranja koji uvelike pojednostavljuje obradu podataka u realnom vremenu;
  • Podrška za sve programske jezike. Moduli su dostupni za Java, Ruby i Python, adaptacija za druge jezike je laka zahvaljujući vrlo jednostavnom komunikacijskom protokolu koji zahtijeva oko 100 linija koda za podršku;
  • Tolerancija grešaka: da biste pokrenuli posao obrade podataka, trebate generirati jar datoteku s kodom. Storm će samostalno distribuirati ovu jar datoteku po čvorovima klastera, povezati rukovaoce povezane s njom i organizirati nadzor. Kada se posao završi, kod će biti automatski onemogućen na svim čvorovima;
  • Horizontalna skalabilnost. Svi proračuni se izvode u paralelnom modu, kako se opterećenje povećava, dovoljno je jednostavno povezati nove čvorove na klaster;
  • Pouzdanost. Storm osigurava da se svaka dolazna poruka u potpunosti obradi barem jednom. Poruka će biti obrađena samo jednom ako nema grešaka prilikom prolaska kroz sve rukovaoce; ako se pojave problemi, neuspješni pokušaji obrade će se ponoviti.
  • Brzina. Stormov kod je napisan s visokim performansama na umu i koristi sistem za brzu asinkronu razmjenu poruka ZeroMQ.

izvor: opennet.ru

Dodajte komentar