Zpět

Spring XD

Nedávno jsme do našeho technologického portfolia zařadili nástroj Spring XD. „XD“ zde znamená „eXtreme Data“ a jde o nástroj, který si značně zjednodušuje vývoj big data aplikací, umožňuje zpracování a export dat, real-time analýzu a batch processing. Zároveň navazuje a rozšiřuje předchozí projekty vyvinuté SpringSource jako Spring Batch, Spring Integration a Spring Data.

Využívané technologie

Spring XD využívá mnoho moderních technologií a jednou z nich je Apache Zookeeper, technologie vyvinutá především ke správě a řízení distribuovaných systémů, která tvoří jeden ze základních stavebních kamenů platformy Spring XD. Zookeeper organizuje jednotlivé uzly do hierarchické struktury, která je podobná standardnímu filesystemu, v rámci platformy je využíván hlavně ke sledování informací o runtime a pro přidělování procesů jednotlivým uzlům.

Mezi dalšími využívanými technologiemi určitě stojí za zmínku Redis, což je open-source key-value databáze, ve Spring XD používaná pro ukládání statistik a jako messaging middleware, nebo Spring Boot, na kterém jsou postaveny veškeré spustitelné skripty používané k nastartování komponent platformy.

Architektura

Spring XD umí operovat ve dvou módech single a multi-node. V prvním případě jde o jediný proces, který je zodpovědný za administraci i vlastní zpracování dat. Tento mód je převážně určený pro vývoj a testování. V druhém případě se jedná o distribuovaný mód, kde je zpracování rozděleno mezí více strojů a administrační server.

Spring XD obsahuje 2 typy základních komponent, první z nich, XD Admin, přebírá požadavky a deleguje je jednotlivým modulům, které je pak zpracovávají. Tyto moduly jsou obsaženy v komponentách druhého typu - XD Container. V single-node módu jsou všechny moduly přiřazeny jedinému containeru, kdežto v distribuovaném módu jsou požadavky zpracovávány napříč několika containery.

V rámci architektury XD Container serverů se pak můžeme setkat s následujícími pojmy:

  • streams - definují, odkud jsou data získána, jakým způsobem jsou zpracována a kam jsou následně předána nebo uložena (tedy jak data putují streamem)
  • jobs - definují jednotlivé kroky ve zpracování dat, jejich pořadí a náročnost
  • taps - jak již vyplývá z anglického názvu, jedná se v podstatě o „kohoutky“, které lze umístit kamkoliv na stream, čímž je umožněno analyzovat data a sbírat nejrůznější statistiky

Ovládání pomocí shellu a GUI

Zajímavou součástí Spring XD je vlastní shell, tzv. XD Shell, který poskytuje příkazy pro operace např. se streamy nebo joby, pomocí XD Shellu je také možné získávat některé statistiky. Disponuje i funkcí automatického doplňování a díky tomu, že je postaven na technologii Spring Shell, je možné jej pomocí pluginů rozšiřovat o sady vlastních příkazů.

Další možností ovládání je webové rozhraní Admin UI, které je také součástí platformy. Rozhraní je rozděleno do dvou hlavních sekcí, z nichž první má na starosti správu streamů a druhá pak administruje joby v rámci batch processingu. Mezi podporované operace patří např. deploy/undeploy streamu, spuštění, zastavení nebo naplánování jobu.

Použití a výhody

Nespornou výhodou je, že Spring XD je postaven na známých a ověřených projektech jako Spring Batch a Spring Integration a podporuje integraci s mnoha moderními technologiemi včetně různých typů databází (HDFS, RDBMS, NoSQL).

K tomu, aby byl plně funční není navíc potřeba napsat jedinou řádku kódu, stačí pouze základní instalace. Díky snadnému ovládání přes XD Shell je pak téměř okamžitě možné vytvářet streamy a spouštět joby. Na druhou stranu ale poskytuje i skvělý základ pro možná rozšíření, nabízí tedy řešení jak pro menší i větší projekty, což ho činí široce využitelným.

 
Další
Komentáře
Trackback URL:

Zatím nebyly vloženy žádné komentáře. Buďte první.

Poslední přispěvatelé Poslední přispěvatelé

Team Orchitech
Příspěvků: 1
Hodnocení: 1
Datum: 29.7.14
Markéta Kůdelová
Příspěvků: 1
Hodnocení: 1
Datum: 3.1.12