Ir pieejama izplatītā skaitļošanas sistēma Apache Storm 2.0

Redzēja gaismu nozīmīga izplatītas notikumu apstrādes sistēmas izlaišana Apache Storm 2.0, kas ir ievērojama ar pāreju uz jaunu arhitektūru, kas ieviesta Java, nevis iepriekš izmantotā Clojure valoda.

Projekts ļauj organizēt dažādu notikumu garantētu apstrādi reāllaikā. Piemēram, Storm var izmantot, lai analizētu datu plūsmas reāllaikā, izpildītu mašīnmācīšanās uzdevumus, organizētu nepārtrauktu skaitļošanu, ieviestu RPC, ETL utt. Sistēma atbalsta klasterizāciju, kļūdu izturīgu konfigurāciju izveidi, garantētu datu apstrādes režīmu un tai ir augsta veiktspēja, kas ir pietiekama, lai vienā klastera mezglā apstrādātu vairāk nekā miljonu pieprasījumu sekundē.

Tiek atbalstīta integrācija ar dažādām rindu apstrādes sistēmām un datu bāzu tehnoloģijām. Storm arhitektūra ietver nestrukturētu, pastāvīgi atjauninātu datu plūsmu saņemšanu un apstrādi, izmantojot patvaļīgus sarežģītus procesorus ar iespēju sadalīt dažādus aprēķinu posmus. Projekts tika nodots Apache kopienai pēc tam, kad Twitter iegādājās BackType, uzņēmumu, kas sākotnēji izstrādāja sistēmu. Praksē Storm tika izmantots BackType, lai analizētu notikumu atspoguļojumu mikroemuāros, lidojuma laikā salīdzinot jaunus tvītus un tajos izmantotās saites (piemēram, tika novērtēts, kā ārējās saites vai Twitter publicētos paziņojumus retranslēja citi dalībnieki ).

Storm funkcionalitāte tiek salīdzināta ar Hadoop platformu, un galvenā atšķirība ir tāda, ka dati netiek glabāti noliktavā, bet tiek uzņemti ārēji un apstrādāti reāllaikā. Storm nav iebūvēta krātuves slāņa, un analītiskais vaicājums tiek lietots ienākošajiem datiem, līdz tie tiek atcelti (kamēr Hadoop izmanto ierobežota laika MapReduce darbus, Storm izmanto ideju par nepārtrauktu "topoloģiju" palaišanu). Apdarinātāju izpildi var sadalīt pa vairākiem serveriem - Storm automātiski paralēli strādā ar pavedieniem dažādos klastera mezglos.

Sistēma sākotnēji tika rakstīta Clojure un darbojas JVM virtuālajā mašīnā. Apache fonds ir uzsācis iniciatīvu Storm migrēšanai uz jaunu Java valodā rakstītu kodolu, kuras rezultāti tiek piedāvāti Apache Storm 2.0 izlaidumā. Visi platformas pamatkomponenti ir pārrakstīti Java valodā. Atbalsts rakstīšanas apstrādātājiem Klojurē ir saglabāts, bet tagad tiek piedāvāts iesējumu veidā. Storm 2.0.0 nepieciešama Java 8. Daudzpavedienu apstrādes modelis ir pilnībā pārveidots, ļaujot sasniegt ievērojams veiktspējas pieaugums (dažām topoloģijām kavēšanās tika samazināta par 50–80%).

Ir pieejama izplatītā skaitļošanas sistēma Apache Storm 2.0

Jaunā versija piedāvā arī jaunu drukātu Streams API, kas ļauj definēt apdarinātājus, izmantojot funkcionālas programmēšanas stila darbības. Jaunā API ir ieviesta papildus standarta pamata API un atbalsta automātisku darbību apvienošanu, lai optimizētu to apstrādi. Logu operāciju logu API ir pievienojis atbalstu statusa saglabāšanai un atjaunošanai aizmugursistēmā.

Atbalsts papildu resursu ņemšanai vērā lēmumu pieņemšanā ne tikai
CPU un atmiņa, piemēram, tīkla un GPU iestatījumi. Ir veikts liels skaits uzlabojumu, lai nodrošinātu integrāciju ar platformu Kafka. Piekļuves kontroles sistēma ir paplašināta, iekļaujot iespēju izveidot administratoru grupas un delegātu pilnvaras. Pievienoti uzlabojumi, kas saistīti ar SQL un metrikas atbalstu. Administratora saskarnē ir parādījušās jaunas komandas klastera stāvokļa atkļūdošanai.

Storm pielietošanas jomas:

  • Jaunu datu vai datu bāzes atjauninājumu straumju apstrāde reāllaikā;
  • Nepārtraukta skaitļošana: Storm var palaist nepārtrauktus vaicājumus un apstrādāt nepārtrauktas straumes, nodrošinot klientam apstrādes rezultātus reāllaikā.
  • Distributed Remote Procedure Call (RPC): Storm var izmantot, lai nodrošinātu resursietilpīgu vaicājumu paralēlu izpildi. Darbs ("topoloģija") programmā Storm ir funkcija, kas sadalīta pa mezgliem un gaida, līdz tiek saņemti ziņojumi, kas jāapstrādā. Pēc ziņojuma saņemšanas funkcija to apstrādā vietējā kontekstā un atgriež rezultātu. Izkliedētā RPC izmantošanas piemērs varētu būt paralēla meklēšanas vaicājumu apstrāde vai darbību veikšana ar lielu kopu kopu.

Vētras īpašības:

  • Vienkāršs programmēšanas modelis, kas ievērojami vienkāršo reāllaika datu apstrādi;
  • Atbalsts jebkurām programmēšanas valodām. Moduļi ir pieejami Java, Ruby un Python, pielāgošana citām valodām ir vienkārša, pateicoties ļoti vienkāršam sakaru protokolam, kura atbalstam ir nepieciešamas aptuveni 100 koda rindas;
  • Kļūdu tolerance: lai palaistu datu apstrādes darbu, ir jāģenerē jar fails ar kodu. Storm neatkarīgi izplatīs šo jar failu klastera mezglos, savienos ar to saistītos apdarinātājus un organizēs uzraudzību. Kad darbs tiks pabeigts, kods tiks automātiski atspējots visos mezglos;
  • Horizontālā mērogojamība. Visi aprēķini tiek veikti paralēlā režīmā, palielinoties slodzei, pietiek vienkārši pievienot jaunus mezglus klasterim;
  • Uzticamība. Storm nodrošina, ka katrs ienākošais ziņojums tiek pilnībā apstrādāts vismaz vienu reizi. Ziņojums tiks apstrādāts tikai vienu reizi, ja, izejot cauri visiem apdarinātājiem, kļūdu nav; ja ​​rodas problēmas, neveiksmīgi apstrādes mēģinājumi tiks atkārtoti.
  • Ātrums. Storm kods ir rakstīts, ņemot vērā augstu veiktspēju, un tas izmanto sistēmu ātrai asinhronai ziņojumapmaiņai ZeroMQ.

Avots: opennet.ru

Pievieno komentāru