K dispozícii je distribuovaný výpočtový systém Apache Storm 2.0

Videl svetlo významné vydanie distribuovaného systému spracovania udalostí Apache Storm 2.0, pozoruhodný svojim prechodom na novú architektúru implementovanú v jazyku Java namiesto predtým používaného jazyka Clojure.

Projekt umožňuje organizovať garantované spracovanie rôznych udalostí v reálnom čase. Storm je napríklad možné použiť na analýzu dátových tokov v reálnom čase, spustenie úloh strojového učenia, organizáciu nepretržitých výpočtov, implementáciu RPC, ETL atď. Systém podporuje klastrovanie, vytváranie konfigurácií odolných voči chybám, garantovaný režim spracovania dát a má vysoký výkon, ktorý je dostatočný na spracovanie viac ako milióna požiadaviek za sekundu na jednom uzle klastra.

Podporuje sa integrácia s rôznymi systémami na spracovanie frontov a databázovými technológiami. Architektúra Storm zahŕňa príjem a spracovanie neštruktúrovaných, neustále aktualizovaných dátových tokov pomocou ľubovoľných zložitých procesorov so schopnosťou rozdeliť medzi rôzne fázy výpočtov. Projekt bol odovzdaný komunite Apache po tom, čo Twitter získal BackType, spoločnosť, ktorá pôvodne vyvinula rámec. V praxi sa Storm použil v BackType na analýzu odrazu udalostí v mikroblogoch, a to priebežným porovnávaním nových tweetov a odkazov v nich použitých (napríklad sa hodnotilo, ako boli externé odkazy alebo oznámenia zverejnené na Twitteri opätovne vysielané inými účastníkmi ).

Funkcionalita Stormu je prirovnávaná k platforme Hadoop, pričom kľúčovým rozdielom je, že dáta nie sú uložené v sklade, ale sú prijímané externe a spracovávané v reálnom čase. Storm nemá vstavanú úložnú vrstvu a analytický dotaz sa začína aplikovať na prichádzajúce údaje, kým nie je zrušený (zatiaľ čo Hadoop používa úlohy MapReduce s obmedzeným časom, Storm využíva myšlienku nepretržitého spúšťania „topológií“). Vykonávanie handlerov môže byť distribuované na viacero serverov – Storm automaticky paralelizuje prácu s vláknami na rôznych uzloch klastra.

Systém bol pôvodne napísaný v Clojure a beží vo virtuálnom stroji JVM. Apache Foundation spustila iniciatívu na migráciu Storm na nové jadro napísané v Jave, ktorej výsledky sú navrhnuté vo vydaní Apache Storm 2.0. Všetky základné komponenty platformy sú prepísané v jazyku Java. Podpora popisovačov písania v Clojure zostala zachovaná, no teraz je ponúkaná vo forme väzieb. Storm 2.0.0 vyžaduje Java 8. Viacvláknový model spracovania bol úplne prepracovaný, čo umožňuje dosiahnuť citeľný nárast výkonu (pri niektorých topológiách sa oneskorenia znížili o 50 – 80 %).

K dispozícii je distribuovaný výpočtový systém Apache Storm 2.0

Nová verzia ponúka aj nové typizované Streams API, ktoré vám umožňuje definovať obslužné programy pomocou funkčných operácií v štýle programovania. Nové API je implementované nad štandardné základné API a podporuje automatické zlučovanie operácií na optimalizáciu ich spracovania. Windowing API pre operácie s oknami pridalo podporu pre ukladanie a obnovu stavu v backende.

Podpora pri zohľadňovaní dodatočných zdrojov pri rozhodovaní, ktoré nie je obmedzené na
CPU a pamäť, ako sú nastavenia siete a GPU. Na zabezpečenie integrácie s platformou sa vykonalo veľké množstvo vylepšení Kafka. Systém riadenia prístupu bol rozšírený o možnosť vytvárať skupiny administrátorov a delegovať tokeny. Pridané vylepšenia týkajúce sa SQL a podpory metrík. V správcovskom rozhraní sa objavili nové príkazy na ladenie stavu klastra.

Oblasti použitia pre Storm:

  • Spracovanie tokov nových údajov alebo aktualizácií databáz v reálnom čase;
  • Continuous Computing: Storm môže spúšťať nepretržité dotazy a spracovávať nepretržité toky, čím poskytuje klientovi výsledky spracovania v reálnom čase.
  • Distributed Remote Procedure Call (RPC): Storm možno použiť na paralelné vykonávanie dopytov náročných na zdroje. Úloha („topológia“) v Storme je funkcia distribuovaná medzi uzlami, ktorá čaká na doručenie správ, ktoré je potrebné spracovať. Po prijatí správy ju funkcia spracuje v lokálnom kontexte a vráti výsledok. Príkladom použitia distribuovaného RPC je paralelné spracovanie vyhľadávacích dopytov alebo vykonávanie operácií na veľkej množine množín.

Vlastnosti búrky:

  • Jednoduchý programovací model, ktorý výrazne zjednodušuje spracovanie údajov v reálnom čase;
  • Podpora pre všetky programovacie jazyky. Existujú moduly pre Javu, Ruby a Python, adaptácia pre iné jazyky nie je náročná vďaka veľmi jednoduchému komunikačnému protokolu, ktorý si vyžaduje podporu okolo 100 riadkov kódu;
  • Odolnosť voči chybám: na spustenie úlohy spracovania údajov musíte vygenerovať súbor jar s kódom. Storm bude nezávisle distribuovať tento jar súbor cez uzly klastra, pripojí k nemu priradené handlery a zorganizuje monitorovanie. Po dokončení úlohy sa kód automaticky deaktivuje na všetkých uzloch;
  • Horizontálna škálovateľnosť. Všetky výpočty sa vykonávajú v paralelnom režime, so zvyšujúcim sa zaťažením stačí jednoducho pripojiť nové uzly do klastra;
  • Spoľahlivosť. Storm zabezpečuje, že každá prichádzajúca správa je aspoň raz úplne spracovaná. Správa bude spracovaná iba raz, ak sa pri prechode cez všetky handlery nevyskytnú chyby, ak sa vyskytnú problémy, neúspešné pokusy o spracovanie sa zopakujú.
  • Rýchlosť. Kód Storm je napísaný s ohľadom na vysoký výkon a využíva systém na rýchle asynchrónne zasielanie správ ZeroMQ.

Zdroj: opennet.ru

Pridať komentár