lëshimi i rëndësishëm i sistemit të përpunimit të shpërndarë të ngjarjeve , duke u veçuar për kalimin në një arkitekturë të re, të zbatuar në gjuhën Java, në vend të gjuhës Clojure që ishte përdorur më parë.
Projekti lejon organizimin e përpunimit të garantuar të ngjarjeve të ndryshme në kohë reale. Për shembull, Storm mund të përdoret për analizën e rrjedhave të dhënash në kohë reale, për kryerjen e detyrave për mësimin e makinerisë, për organizimin e llogaritjeve të vazhdueshme, implementimin e RPC, ETL dhe shumë të tjera. Sistemi mbështet klasterizimin, krijimin e konfiguracioneve me tolerancë ndaj dështimeve, modalitetin e përpunimit të garantuar të të dhënave dhe ka një performancë të lartë, të mjaftueshme për të përpunuar më shumë se një milion kërkesa në sekondë në një nod klasteri.
Mbështetet integrimi me sisteme të ndryshme të përpunimit të radhëve dhe teknologji databazash. Arkitektura Storm përfshin marrjen dhe përpunimin e rrjedhave të dhënash të pa strukturuara që përditësohen vazhdimisht, duke përdorur trajtues kompleksë të rastësishëm me mundësinë e ndarjes mes fazave të ndryshme të llogaritjeve. Projekti u dorëzua në komunitetin Apache pas përthithjes së Twitter nga kompania BackType, që fillimisht zhvilloi frameworkun. Në praktikë, Storm u përdor në BackType për të analizuar reflektimin e ngjarjeve në mikroblogje, duke përputhur në kohë reale tweet-e të reja dhe lidhjet që përdoren në to (për shembull, bëhej vlerësimi se si lidhjet e jashtme ose njoftimet e publikuara në Twitter ripublikohet nga pjesëmarrës të tjerë).
Funksionaliteti i Storm krahasohet me platformĂ«n Hadoop, ndĂ«rsa ndryshimi kryesor Ă«shtĂ« se tĂ« dhĂ«nat nuk ruhen nĂ« njĂ« depo, por vijnĂ« nga jashtĂ« dhe pĂ«rpunohen nĂ« kohĂ« reale. NĂ« Storm nuk ka njĂ« ndĂ«rfaqe tĂ« integruar pĂ«r organizimin e depozitave, dhe kĂ«rkesa analitike fillon tĂ« zbatohet pĂ«r tĂ« dhĂ«nat e pranuara deri sa tĂ« anulohet (nĂ«se nĂ« Hadoop pĂ«rdoren punĂ«t MapReduce qĂ« zĂ«nĂ« kohĂ« tĂ« caktuar, nĂ« Storm zbatohet ideja e "topologjive" qĂ« ekzekutohen vazhdimisht). Ekzekutimi i pĂ«rpunuesve mund tĂ« shpĂ«rndahet nĂ« disa serverĂ« â Storm automatikisht shpĂ«rndan punĂ«n me rrjedha nĂ« nyje tĂ« ndryshme tĂ« klasterit.
Sistemi fillimisht ishte shkruar në gjuhën Clojure dhe ekzekutohet brenda makinës virtuale JVM. Në fondin Apache u nis një iniciativë për të kaluar Storm në një bërthama të re, të shkruar në Java, rezultatet e së cilës u ofruan në lëshimin Apache Storm 2.0. Të gjitha komponentët bazë të platformës u riprogramuan në Java. Mbështetja për shkruarjen e përpunuesve në Clojure u ruajt, por tani ofrohet në formën e lidhjeve. Për të punuar me Storm 2.0.0 kërkohet Java 8. Modeli i ri i përpunimit shumëthëtar është riparë tërësisht, çka lejon një rritje të dukshme të performancës (për disa topologji, vonesat u reduktuan me 50-80%).
Në versionin e ri gjithashtu është ofruar një API i ri i tipizuar i Streams, i cili lejon përcaktimin e përpunuesve, duke përdorur operacione me stilin e programimit funksional. API-i i ri është realizuar mbi API-në bazë standarde dhe mbështet bashkimin automatik të operacioneve për optimizimin e përpunimit të tyre. Në API-në Windowing për operacionet me dritare është shtuar mbështetje për ruajtjen dhe rikuperimin e gjendjes në backend.
Në planifikuesin e nisjes së përpunuesve është shtuar mbështetje për marrjen parasysh të burimeve shtesë gjatë marrjes së vendimeve, që nuk kufizohen vetëm në
CPU dhe memorie, siç janë parametrat e rrjetit dhe GPU. Janë bërë shumë përmirësime që lidhen me sigurimin e integrimit me platformën . Sistemi i kontrollit të aksesit është zgjeruar, ku është krijuar mundësia e krijimit të grupeve të administratorëve dhe delegimit të tokeneve. Janë shtuar përmirësime në mbështetje të SQL dhe metrikeve. Në ndërfaqen e administratorit janë shtuar komanda të reja për debugin e gjendjes së klasit.
Fushat e aplikacionit të Storm:
- Përpunimi i rrjedhave të dhënash të reja ose përditësimeve në bazën e të dhënave në kohë reale;
- Llogaritjet e vazhdueshme: Storm mund të kryejë kërkesa të vazhdueshme dhe të përpunojë rrjedha të vazhdueshme, duke i kaluar rezultatet e përpunimit klientit në kohë reale.
- Thirrja e procedurave të shpërndara (RPC): Storm mund të përdoret për të siguruar paralelizmin e ekzekutimit të kërkesave që përdorin shumë burime. Detyra ("topologjia") në Storm përfaqëson një funksion të shpërndarë mbi nyje që pret të pranojë mesazhe për t'u përpunuar. Pasi të pranojë një mesazh, funksioni e përpunon atë në kontekstin lokal dhe kthen rezultatin. Një shembull i përdorimit të RPC të shpërndarë mund të jetë përpunimi paralel i kërkesave të kërkimit ose ekzekutimi i operacioneve mbi një grup të madh të shumëzimeve.
Karakteristikat e Storm:
- Modeli i thjeshtë i programimit, i cili e thjeshton ndjeshëm përpunimin e të dhënave në kohë reale;
- Mbështetje për çdo gjuhë programimi. Ka module për gjuhët Java, Ruby dhe Python, përshtatja për gjuhë të tjera nuk paraqet vështirësi falë një protokolli komunikimi shumë të thjeshtë, për realizimin e mbështetjes së të cilit nevojiten rreth 100 rreshta kodi;
- Qëndrueshmëri: për të nisur një detyrë për përpunimin e të dhënave, është e nevojshme të krijohet një skedar jar me kodin. Storm do ta shpërndajë automatikisht këtë skedar jar në nyjet e klasterit, do t'i lidhë përpunuesit përkatës dhe do të organizojë monitorimin. Pas përfundimit të detyrës, kodi do të çaktivizohet automatikisht në të gjitha nyjet;
- Shkallëzueshmëri horizontale. Të gjitha llogaritjet kryhen në mënyrë paralel, dhe me rritjen e ngarkesës, mjafton të lidhen nyje të reja në klaster;
- Besueshmëri. Storm garanton që çdo mesazh që hyn do të përpunojë plotësisht të paktën një herë. Mesazhi do të përpunojë vetëm një herë në rast se nuk ka gabime gjatë kalimit të të gjithë përpunuesve, nëse ndodhin probleme, përpjekjet e dështuara për përpunim do të përsëriten.
- Shpejtësi. Kodi i Storm është shkruar me fokus në performancën e lartë dhe përdor një sistem për shkëmbim të shpejtë asinkron të mesazheve .
Burimi: opennet.ru
