GeoMesa是一款开源的基于分布式计算系统的面向海量时空数据查询与分析的工具包,它支持多种可扩展的、基于云端的数据存储架构,包括Apache Accumulo, HBase,Cassandra,Google Bigtable,以及用于流计算的Apache Kafka 。同时GeoMesa还可以和Apache Storm一起处理流数据,并使用Spark进行空间分析。 同时,GeoMesa以GeoServer插件的形式为GeoServer提供了读取GeoMesa表的功能。在GeoServer中,GeoMesa表作为一种数据源存在,通过GeoServer,用户可以通过WMS/WFS的形式访问GeoMesa的数据。下图展示了GeoMesa for Accumulo的一个应用架构,可以看到,GeoMesa的定位是一个基于分布式数据库的用于海量空间数据处理的数据引擎产品(SDE)。
(图片来自:http://www.geomesa.org/documentation/user/architecture.html)
GeoMesa的源码可以在GitHub官方页面下到,目前最新版分别为2.0.0. 下载完成后在Scala IDE中导入为Maven工程,可以看到如下图所示的代码结构。GeoMesa代码库本身比较复杂,包含了大量的子模块,除了自身所带的一些基础工具模块外,还提供了基于目前主流的分布式存储系统的扩展模块,但是在了解了GeoMesa的架构