Az Apache Storm 2.0 elosztott számítási rendszere elérhető

Meglátta a napvilágot jelentős eseményfeldolgozó rendszer kiadás Apache Storm 2.0, figyelemre méltó átállással egy új architektúrára, amely Java nyelven íródott, a korábban használt Clojure nyelv helyett.

A projekt lehetővé teszi a különböző események garantált, valós idejű feldolgozását. Például a Storm használható valós idejű adatfolyamok elemzésére, gépi tanulással kapcsolatos feladatok végrehajtására, folyamatos számítások lebonyolítására, RPC, ETL stb. megvalósítására. A rendszer támogatja a klaszterrendszerek létrehozását, a hibamentes konfigurációk kialakítását, a garantált adatfeldolgozási üzemmódot, és rendkívül nagy teljesítménye van, amely elegendő több mint egymillió kérés másodpercenkénti feldolgozásához egy klasztercsomópont esetében.

Támogatja a különböző üzenetfeldolgozó rendszerek és adatbázis-technológiák integrációját. A Storm architektúrája megköveteli a strukturálatlan, folyamatosan frissülő adatfolyamok fogadását és feldolgozását tetszőleges összetettségű feldolgozók használatával, lehetővé téve a különböző számítási fázisok közötti szekciók létrehozását. A projekt átkerült az Apache közösséghez, miután a Twitter felvásárolta a BackType céget, amely eredetileg kifejlesztette a keretrendszert. A gyakorlatban a Storm a BackType-nál az események mikroblogokban való tükröződésének elemzésére szolgált, az új tweetek és a bennük használt linkek azonnali párosításával (például annak értékelése folyt, hogy hogyan továbbítják más résztvevők a külső linkeket vagy a Twitteren közzétett hirdetményeket).

A Storm funkcionalitása összehasonlítható a Hadoop platformmal, ám a kulcsfontosságú különbség az, hogy az adatok nem tárhelyre kerülnek, hanem külső forrásból érkeznek, és valós időben dolgozzák fel őket. A Stormban nincs beépített réteg a tárhely megszervezésére, és az elemző lekérdezés az érkező adatokra addig terjed ki, amíg meg nem szüntetik (míg a Hadoopnál a végleges időt igénylő MapReduce feladatokról van szó, a Stormban az állandóan végrehajtott "topológiák" ötlete valósul meg). A feldolgozók végrehajtása több szerverre is kiterjedhet — a Storm automatikusan párhuzamosítja a folyamatok munkáját a klaszter különböző csomópontjain.

A rendszer eredetileg Clojure nyelven készült, és a JVM virtuális gépen fut. Az Apache keretében megkezdődött a Storm új magra való átírására irányuló kezdeményezés, amely Java nyelven készült, és ennek eredményei az Apache Storm 2.0 kiadásában találhatóak. Az alapvető platform komponensek mind Java nyelvűre lettek átírva. A Clojure nyelven írt feldolgozók támogatása megmaradt, de most már bindeként kínálják. A Storm 2.0.0 működéséhez Java 8 telepítése szükséges. A több szálú feldolgozás modellje teljesen átdolgozásra került, ami lehetővé tette és a packed attribútummal is. Figyelembe véve, hogy ez még az adott struktúra helyfoglalásának optimalizálását is segíti, számomra ez a megoldás kedvezőbbnek tűnik, még ha a jelentős teljesítménynövekedést (bizonyos topológiák esetén a késések 50-80%-kal csökkentek).

Az Apache Storm 2.0 elosztott számítási rendszere elérhető

Az új verzióban felajánlásra került egy új típusos API Streams, amely lehetővé teszi a feldolgozók megadását a funkcionális programozás stílusában. Az új API a standard alap API-ra épül, és támogatja a műveletek automatikus összevonását a feldolgozás optimalizálása érdekében. Az API Windowing számára, az ablakos műveleteknél, hozzáadva a backend állapotának megőrzésének és helyreállításának támogatása.

A feldolgozók elindításának ütemezőjéhez hozzáadva lett az extra erőforrások figyelembevétele a döntéshozatal során, nem korlátozva
a CPU-ra és memóriára, hanem figyelembe véve a hálózati paramétereket és a GPU-t is. Számos fejlesztés történt a platform integrációjának biztosítása érdekében , amely lehetőséget ad valós időben látni a rendszer eseményportfólióját.. Kiterjesztették a hozzáférés-ellenőrző rendszert, amely lehetőséget biztosít adminisztrátori csoportok létrehozására és tokenek delegálására. Fejlesztések történtek az SQL és a metrikák támogatásában is. Az adminisztrátori felületen új parancsok kerültek bevezetésre a klaszter állapotának hibakeresésére.

A Storm alkalmazási területei:

  • Új adatok vagy adatbázis frissítések valós idejű feldolgozása;
  • Folyamatos számítások: A Storm képes folyamatos lekérdezéseket végrehajtani, és feldolgozott folyamatos áramlásokat kezelni, a feldolgozási eredményeket valós időben továbbítva az ügyfélnek.
  • Elosztott távoli eljáráshívás (RPC): A Storm párhuzamosságot biztosít erőforrásigényes lekérdezések végrehajtásához. A Storm-ban a feladat („topológia”) egy elosztott funkció, amely a csomópontok között várakozik a feldolgozásra váró üzenetek érkezésére. Az üzenet átvételét követően a funkció helyi környezetben dolgozza fel és visszaadja az eredményt. Az elosztott RPC használatának példája lehet a keresési lekérdezések párhuzamos feldolgozása vagy a nagy mennyiségű halmazokkal kapcsolatos műveletek végrehajtása.

A Storm jellemzői:

  • Egyszerű programozási modell, amely jelentősen megkönnyíti az adatok valós idejű feldolgozását;
  • Bármely programozási nyelv támogatása. Léteznek modulok Java, Ruby és Python nyelvekhez, más nyelvek alkalmazása nem jelent nehézséget egy rendkívül egyszerű kommunikációs protokoll miatt, amelynek támogatásának megvalósításához körülbelül 100 sor kód szükséges;
  • Hibátlan működés: az adatok feldolgozására szolgáló feladat elindításához egy jar-fájlt kell létrehozni a kód mellett. A Storm önállóan terjeszti a jar-fájlt a klaszter csomópontjai között, csatlakoztatja a kapcsolódó feldolgozókat, és megszervezi a felügyeletet. A feladat befejeztével a kód automatikusan leállítódik minden 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 csatlakoztatni a klaszterhez;
  • Megbízhatóság. A Storm garantálja, hogy minden beérkezett üzenetet teljes egészében feldolgoznak legalább egyszer. Egy üzenetet csak akkor dolgoznak fel egyszer, ha nem történik hiba a feldolgozók mindegyikénél, ha probléma merül fel, akkor a sikertelen feldolgozási kísérleteket megismétlik.
  • Sebesség. A Storm kódja a nagy teljesítmény szem előtt tartásával készült és gyors aszinkron üzenetváltásra használja a rendszert ZeroMQ.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster