Disponohet sistemi informatik i shpërndarë Apache Storm 2.0

Pa dritën lëshim domethënës i një sistemi të përpunimit të ngjarjeve të shpërndara Apache Storm 2.0, i dukshëm për kalimin e tij në një arkitekturë të re të zbatuar në Java, në vend të gjuhës Clojure të përdorur më parë.

Projekti ju lejon të organizoni përpunim të garantuar të ngjarjeve të ndryshme në kohë reale. Për shembull, Storm mund të përdoret për të analizuar rrjedhat e të dhënave në kohë reale, për të ekzekutuar detyra të mësimit të makinerive, për të organizuar llogaritje të vazhdueshme, për të zbatuar RPC, ETL, etj. Sistemi mbështet grupimin, krijimin e konfigurimeve tolerante ndaj gabimeve, modalitetin e garantuar të përpunimit të të dhënave dhe ka performancë të lartë, të mjaftueshme për të përpunuar më shumë se një milion kërkesa në sekondë në një nyje grupi.

Mbështetet integrimi me sisteme të ndryshme të përpunimit të radhëve dhe teknologjitë e bazës së të dhënave. Arkitektura Storm përfshin marrjen dhe përpunimin e rrymave të të dhënave të pastrukturuara, të përditësuara vazhdimisht duke përdorur përpunues arbitrarë kompleksë me aftësinë për të ndarë midis fazave të ndryshme të llogaritjeve. Projekti iu dorëzua komunitetit Apache pasi Twitter bleu BackType, kompania që fillimisht zhvilloi kornizën. Në praktikë, Storm u përdor në BackType për të analizuar pasqyrimin e ngjarjeve në mikroblogje, duke krahasuar tweet-et e reja dhe lidhjet e përdorura në to (për shembull, u vlerësua se si lidhjet e jashtme ose njoftimet e publikuara në Twitter ritransmetoheshin nga pjesëmarrësit e tjerë ).

Funksionaliteti i Storm krahasohet me platformën Hadoop, me ndryshimin kryesor që të dhënat nuk ruhen në një depo, por gëlltiten nga jashtë dhe përpunohen në kohë reale. Storm nuk ka një shtresë të integruar të ruajtjes dhe pyetja analitike fillon të aplikohet në të dhënat hyrëse derisa të anulohet (ndërsa Hadoop përdor punë në kohë të fundme MapReduce, Storm përdor idenë e ekzekutimit të vazhdueshëm të "topologjive"). Ekzekutimi i mbajtësve mund të shpërndahet nëpër disa serverë - Storm paralelizon automatikisht punën me thread-at në nyje të ndryshme të grupimeve.

Sistemi fillimisht u shkrua në Clojure dhe funksionon brenda makinës virtuale JVM. Fondacioni Apache ka nisur një iniciativë për të migruar Storm në një kernel të ri të shkruar në Java, rezultatet e të cilit propozohen në lëshimin e Apache Storm 2.0. Të gjithë komponentët bazë të platformës rishkruhen në Java. Mbështetja për mbajtësit e shkrimit në Clojure është ruajtur, por tani ofrohet në formën e lidhjeve. Storm 2.0.0 kërkon Java 8. Modeli i përpunimit me shumë fije është ridizajnuar plotësisht, duke lejuar arritur një rritje e dukshme e performancës (për disa topologji, vonesat u reduktuan me 50-80%).

Disponohet sistemi informatik i shpërndarë Apache Storm 2.0

Versioni i ri ofron gjithashtu një API të re të shtypur Streams që ju lejon të përcaktoni mbajtësit duke përdorur operacione funksionale të stilit të programimit. API i ri zbatohet në krye të API-së bazë standarde dhe mbështet bashkimin automatik të operacioneve për të optimizuar përpunimin e tyre. API Windowing për operacionet e dritareve ka shtuar mbështetje për ruajtjen dhe rivendosjen e gjendjes në fund.

Mbështetje për marrjen parasysh të burimeve shtesë gjatë marrjes së vendimeve, pa u kufizuar në
CPU dhe memoria, të tilla si cilësimet e rrjetit dhe GPU. Një numër i madh përmirësimesh janë bërë për të siguruar integrimin me platformën Kafka. Sistemi i kontrollit të aksesit është zgjeruar për të përfshirë aftësinë për të krijuar grupe administratorësh dhe për të deleguar argumente. Përmirësime të shtuara në lidhje me mbështetjen e SQL dhe metrikës. Komandat e reja janë shfaqur në ndërfaqen e administratorit për korrigjimin e gjendjes së grupit.

Fushat e aplikimit për Stuhinë:

  • Përpunimi i rrjedhave të të dhënave të reja ose përditësimeve të bazës së të dhënave në kohë reale;
  • Informatika e vazhdueshme: Storm mund të ekzekutojë pyetje të vazhdueshme dhe të përpunojë rrjedha të vazhdueshme, duke i ofruar klientit rezultatet e përpunimit në kohë reale.
  • Thirrja e procedurës në distancë të shpërndarë (RPC): Storm mund të përdoret për të ofruar ekzekutim paralel të pyetjeve me burime intensive. Një punë (“topologji”) në Storm është një funksion i shpërndarë nëpër nyje që pret që të mbërrijnë mesazhet që duhet të përpunohen. Pas marrjes së një mesazhi, funksioni e përpunon atë në kontekstin lokal dhe e kthen rezultatin. Një shembull i përdorimit të RPC të shpërndarë do të ishte përpunimi i pyetjeve të kërkimit paralelisht ose kryerja e operacioneve në një grup të madh grupesh.

Karakteristikat e stuhisë:

  • Një model i thjeshtë programimi që thjeshton shumë përpunimin e të dhënave në kohë reale;
  • Mbështetje për çdo gjuhë programimi. Modulet janë të disponueshme për Java, Ruby dhe Python, përshtatja për gjuhë të tjera është e lehtë falë një protokolli shumë të thjeshtë komunikimi që kërkon rreth 100 rreshta kodi për t'u mbështetur;
  • Toleranca e gabimeve: për të ekzekutuar një punë të përpunimit të të dhënave, duhet të gjeneroni një skedar jar me kod. Storm do ta shpërndajë në mënyrë të pavarur këtë skedar jar nëpër nyjet e grupimit, do të lidhë mbajtësit e lidhur me të dhe do të organizojë monitorimin. Kur puna të përfundojë, kodi do të çaktivizohet automatikisht në të gjitha nyjet;
  • Shkallueshmëria horizontale. Të gjitha llogaritjet kryhen në mënyrë paralele; ndërsa ngarkesa rritet, mjafton thjesht të lidhni nyjet e reja me grupin;
  • Besueshmëria. Storm siguron që çdo mesazh në hyrje të përpunohet plotësisht të paktën një herë. Mesazhi do të përpunohet një herë vetëm nëse nuk ka gabime gjatë kalimit nëpër të gjithë mbajtësit; nëse shfaqen probleme, atëherë përpjekjet e pasuksesshme të përpunimit do të përsëriten.
  • Shpejtësia. Kodi i Storm është shkruar me performancë të lartë në mendje dhe përdor sistemin për mesazhe të shpejta asinkrone ZeroMQ.

Burimi: opennet.ru

Shto një koment