Elérhető az Apache Storm 2.0 elosztott számítástechnikai rendszer

Látta a fényt elosztott eseményfeldolgozó rendszer jelentős kiadása Apache Storm 2.0, amely a korábban használt Clojure nyelv helyett egy új, Java nyelven megvalósított architektúrára való áttéréséről nevezetes.

A projekt lehetővé teszi különböző események garantált, valós időben történő feldolgozását. Például a Storm használható adatfolyamok valós idejű elemzésére, gépi tanulási feladatok futtatására, folyamatos számítások megszervezésére, RPC, ETL megvalósítására stb. A rendszer támogatja a fürtözést, a hibatűrő konfigurációk létrehozását, a garantált adatfeldolgozási módot, és nagy teljesítményű, amely másodpercenként több mint millió kérés feldolgozásához elegendő egy fürt csomóponton.

A különféle sorfeldolgozó rendszerekkel és adatbázis-technológiákkal való integráció támogatott. A Storm architektúra magában foglalja a strukturálatlan, folyamatosan frissített adatfolyamok fogadását és feldolgozását tetszőleges összetett processzorok segítségével, amelyek képesek particionálni a számítások különböző szakaszai között. A projektet azután adták át az Apache közösségnek, hogy a Twitter felvásárolta a BackType-ot, a keretrendszert eredetileg kifejlesztő céget. A gyakorlatban a Stormot a BackType-ban használták az események mikroblogokban való tükröződésének elemzésére, az új tweetek és a bennük használt hivatkozások menet közbeni összehasonlításával (például felmérték, hogy a Twitteren közzétett külső hivatkozásokat vagy közleményeket hogyan sugározzák újra a többi résztvevő ).

A Storm funkcionalitását a Hadoop platformhoz hasonlítják, azzal a fő különbséggel, hogy az adatokat nem raktárban tárolják, hanem kívülről veszik fel és valós időben dolgozzák fel. A Storm nem rendelkezik beépített tárolóréteggel, és az analitikus lekérdezést a bejövő adatokra kezdik alkalmazni, amíg le nem vonják azokat (míg a Hadoop véges idejű MapReduce-feladatokat használ, a Storm a „topológiák” folyamatos futtatásának ötletét használja). A kezelők végrehajtása több szerver között is megosztható – a Storm automatikusan párhuzamosítja a munkát a különböző fürtcsomópontokon lévő szálakkal.

A rendszer eredetileg Clojure-ban íródott, és a JVM virtuális gépen belül fut. Az Apache Foundation kezdeményezést indított a Storm Java nyelven írt új kernelre való áttelepítésére, amelynek eredményeit az Apache Storm 2.0 kiadása javasolta. A platform minden alapvető összetevője át van írva Java nyelven. A Clojure íráskezelőinek támogatása megmaradt, de most kötések formájában kínálják. A Storm 2.0.0 Java 8-at igényel. A többszálú feldolgozási modellt teljesen újratervezték, lehetővé téve elérni a teljesítmény észrevehető növekedése (egyes topológiáknál a késések 50-80%-kal csökkentek).

Elérhető az Apache Storm 2.0 elosztott számítástechnikai rendszer

Az új verzió egy új típusú Streams API-t is kínál, amely lehetővé teszi kezelők meghatározását funkcionális programozási stílusú műveletek segítségével. Az új API a szabványos alap API-n felül van megvalósítva, és támogatja a műveletek automatikus összevonását a feldolgozásuk optimalizálása érdekében. Az ablakműveletek Windowing API-ja támogatja az állapot mentését és visszaállítását a háttérben.

Támogatja a további erőforrások figyelembevételét a döntések meghozatalakor, nem korlátozódik
CPU és memória, például hálózati és GPU beállítások. Számos fejlesztés történt a platformmal való integráció biztosítása érdekében Kafka. A hozzáférés-felügyeleti rendszer kibővült, és lehetővé teszi adminisztrátori csoportok létrehozását és delegált tokenek létrehozását. Hozzáadott fejlesztések az SQL-hez és a metrikák támogatásához. Új parancsok jelentek meg a rendszergazdai felületen a fürt állapotának hibakeresésére.

A Storm alkalmazási területei:

  • Új adatfolyamok vagy adatbázis-frissítések feldolgozása valós időben;
  • Folyamatos számítástechnika: A Storm folyamatos lekérdezéseket futtathat és folyamatos adatfolyamokat dolgozhat fel, valós időben szállítva a feldolgozási eredményeket az ügyfélnek.
  • Elosztott távoli eljáráshívás (RPC): A Storm erőforrás-igényes lekérdezések párhuzamos végrehajtására használható. A Stormban a job („topológia”) egy csomópontok között elosztott függvény, amely a feldolgozandó üzenetek érkezésére vár. Miután megkapta az üzenetet, a függvény feldolgozza azt a helyi környezetben, és visszaadja az eredményt. Az elosztott RPC használatára példa lehet a keresési lekérdezések párhuzamos feldolgozása vagy műveletek végrehajtása nagy halmazkészleten.

A vihar jellemzői:

  • Egyszerű programozási modell, amely nagyban leegyszerűsíti a valós idejű adatfeldolgozást;
  • Bármilyen programozási nyelv támogatása. A modulok Java, Ruby és Python számára érhetők el, a más nyelvekhez való adaptálás egyszerű egy nagyon egyszerű kommunikációs protokollnak köszönhetően, amely körülbelül 100 sornyi kódot igényel;
  • Hibatűrés: egy adatfeldolgozási feladat futtatásához kódot tartalmazó jar fájlt kell generálni. A Storm ezt a jar-fájlt függetlenül osztja szét a fürtcsomópontok között, összekapcsolja a hozzá társított kezelőket, és megszervezi a megfigyelést. Amikor a feladat befejeződik, a kód automatikusan letiltásra kerül az összes csomóponton;
  • Vízszintes skálázhatóság. Minden számítás párhuzamos módban történik; a terhelés növekedésével elegendő új csomópontokat egyszerűen csatlakoztatni a fürthöz;
  • Megbízhatóság. A Storm biztosítja, hogy minden bejövő üzenetet legalább egyszer teljesen feldolgozzanak. Az üzenet csak egyszer kerül feldolgozásra, ha nincs hiba az összes kezelőn való áthaladáskor; ha problémák merülnek fel, akkor a sikertelen feldolgozási kísérletek megismétlődnek.
  • Sebesség. A Storm kódja a nagy teljesítményt szem előtt tartva íródott, és a rendszert a gyors aszinkron üzenetküldéshez használja ZeroMQ.

Forrás: opennet.ru

Hozzászólás