Co mají Apache Hadoop a ArcGIS společného?

25. 11. 2014
  • Desktopový GIS
  • Další
  • ArcGIS 10.3

Apache Hadoop je  open source projekt společnosti Apache Software Foundation zabývající se rozvojem platformy pro distribuované ukládání a zpracování velkých objemů dat v clusteru počítačů.

Distribuované uložení dat má na starost modul HDFS (Hadoop Distributed File System). Skládá se z řídícího uzlu (či uzlů) namenode (s metadaty o samotném uložení dat) a uzlů datanode, kam se data fyzicky, s určitým stupněm redundance, ukládají. Základem distribuovaného zpracování jsou knihovny programovacího modelu MapReduce.

Fáze Map() zmapuje vstupní data a rozdělí práci dle uložení dat na příslušné uzly clusteru (to neznamená, že se výpočet provádí pouze na uzlech s daty), případně deleguje další podoperace Map na tyto uzly. Tato fáze dále provede operace, které lze odděleně provést na částech dat. Vedle toho provádí Fáze Map() např. i filtraci.

Fáze Reduce() zredukuje výsledky fáze Map() a provede operace závislé na celých datech, např. sumarizaci. I fáze Reduce() ale může probíhat zároveň na více uzlech. Trojici základních pilířů doplňuje modul YARN (Yet Another Resource Negotiator), který řídí přidělování zdrojů v momentě, kdy běží více úloh najednou. 

Hadoop má celou řadu podprojektů, jejichž cílem je zjednodušení práce s touto platformou. Pro administraci např. existuje webové rozhraní Ambari. Pro programování výpočtů lze využít zjednodušeného jazyka modulu Apache Pig či SQL obdoby HiveQL modulu Hive pro datový sklad (jinak se při psaní úloh MapReduce používá Java). Velkou výhodou Hadoopu je, že do clusteru lze zapojit i běžné stolní počítače, že pád jednoho z uzlů clusteru je automaticky detekován (a při redundanci uzlů neohrozí uložená data ani probíhající výpočty) a že doba, kterou výpočet trvá, se paralelizací zkracuje. Z velkých uživatelů Hadoopu lze uvést např. Yahoo a Facebook.

Vkrádá se zde pomalu otázka, co má výše uvedené společného s ArcGISem?

Jednoduchou odpovědí je: GIS Tools for Hadoop. GIS Tools for Hadoop je open source aktivita společnosti Esri, jejímž cílem je usnadnění zpracování a analýzy velkých objemů prostorových dat v Hadoop. Výsledkem této aktivity jsou tři sady nástrojů:

  • Esri Geometry API for Java
  • Spatial Framework for Hadoop
  • Geoprocessing Tools for Hadoop

Esri Geometry API for Java je základní knihovnou funkcí, o které mohou uživatele Hadoopu rozšířit úlohy MapReduce pro zpracování a analýzu vektorových dat. Umožňuje tvorbu geometrie z řetězců JSON, WKT a binárních zápisů WKB a shapefile. Umožňuje nad vektorovými daty provádět operace union, difference, intersect, clip, cut buffer a dále provádět testování topologických vztahů geometrií funkcemi equals, within, contains, crossestouches.

Spatial Framework for Hadoop je rozšíření pro modul Hive. Modul Hive umožňuje nad datovým skladem provádět dotazy pomocí HiveQL (obdoba SQL). Spatial Framework for Hadoop zapouzdřuje funkce a datové typy Esri Geometry for Java do jazyka HiveQL, obdobně jako jsou např. v relačních databázích s SDE zapouzdřeny knihovny pro ST_GEOMETRY v SQL.

Geoprocessing Tools for Hadoop je sada Pythonových geoprocessingových nástrojů pro zpřístupnění Hadoopu uživatelům systému ArcGIS. Lze je jednoduše přidat k nástrojům do ArcToolbox a obvyklým způsobem využívat. S těmito nástroji je možné převádět třídy prvků geodatabáze do/z formátu JSON, uložit data do HDFS úložiště či je z něj naopak stáhnout. Sada také obsahuje nástroje pro spuštění připravené úlohy v Hadoopu a pro kontrolu statusu spuštěných úloh.

Ke všem výše uvedeným nástrojům je k dispozici zdrojový kód, a tak je lze upravovat a rozvíjet dle konkrétních potřeb uživatele.

Více informací k tomuto projektu lze nalézt na stránkách githubu.


Apache Hadoop a ArcGIS

 

 

Autor: Martin Král