GeoMesa is an open source suite of tools that enables large-scale geospatial querying and analytics on distributed computing systems. GeoMesa provides spatio-temporal indexing on top of the Accumulo, HBase and Cassandra databases for massive storage of point, line, and polygon data. GeoMesa also provides near real time stream processing of spatio-temporal data by layering spatial semantics on top of Apache Kafka. Through GeoServer, GeoMesa facilitates integration with a wide range of existing mapping clients over standard OGC (Open Geospatial Consortium) APIs and protocols such as WFS and WMS. GeoMesa supports Apache Spark for custom distributed geospatial analytics.
GeoMesa is a member of the LocationTech working group of the Eclipse Foundation.
|
User list |
Developer list |
JIRA issue tracking
Documentation | Upgrade Guide | Quick Starts | Tutorials
Latest release: 5.4.0 - Accumulo | HBase | Cassandra | Kafka | Redis | FileSystem | PostGIS
Downloads hosted on GitHub include SHA-256 hashes and gpg signatures (.asc files). To verify a download using gpg,
import the appropriate key then verify:
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys CD24F317
gpg --verify geomesa-accumulo_2.12-5.4.0-bin.tar.gz.asc geomesa-accumulo_2.12-5.4.0-bin.tar.gzThe keys used for signing are:
CD24F317 Emilio Lahr-Vivaz <elahrvivaz(-at-)ccri.com>
1E679A56 James Hughes <jnh5y(-at-)ccri.com>
GeoMesa is hosted on Maven Central. To include it as a dependency, add the desired modules, for example:
<dependency>
<groupId>org.locationtech.geomesa</groupId>
<artifactId>geomesa-accumulo-datastore_2.12</artifactId>
<version>5.4.0</version>
</dependency>GeoMesa provides a bill-of-materials module, which can simplify version management:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.locationtech.geomesa</groupId>
<artifactId>geomesa-bom_2.12</artifactId>
<version>5.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>GeoMesa depends on several third-party libraries that are only available in separate repositories. To include GeoMesa in your project, add the following repositories to your pom:
<repositories>
<!-- geotools -->
<repository>
<id>osgeo</id>
<url>https://repo.osgeo.org/repository/release</url>
</repository>
<!-- confluent -->
<repository>
<id>confluent</id>
<url>https://packages.confluent.io/maven/</url>
</repository>
</repositories>GeoMesa publishes spark-runtime JARs for integration with Spark environments like Databricks. These
shaded JARs include all the required dependencies in a single artifact. When importing through Maven, all
transitive dependencies can be excluded. There are Spark runtime JARs available for most of the different
DataStore implementations:
<dependency>
<groupId>org.locationtech.geomesa</groupId>
<artifactId>geomesa-gt-spark_2.12</artifactId>
<classifier>runtime</classifier>
<version>5.4.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>These JARs are also included in the Downloads bundles, above.
Similarly, integration with sbt is straightforward:
// Add necessary resolvers
resolvers ++= Seq(
"osgeo" at "https://repo.osgeo.org/repository/release",
"confluent" at "https://packages.confluent.io/maven"
)
// Select desired modules
libraryDependencies ++= Seq(
"org.locationtech.geomesa" %% "geomesa-utils" % "5.4.0"
)Unreleased features are available for testing or early adoption using development snapshots. Note that development snapshots do not carry any of the normal guarantees around compatibility and stability.
Documentation is published nightly to https://geomesa.org/documentation/latest/.
Maven artifacts are published nightly to the Eclipse Maven repository:
<repository>
<id>geomesa-snapshots</id>
<url>https://repo.eclipse.org/content/repositories/geomesa-snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>Requirements:
- Git
- Java JDK 17
- Apache Maven 3.6.3 or later
- Docker (only required for running unit tests)
Use Git to download the source code. Navigate to the destination directory, then run:
git clone git@github.com:locationtech/geomesa.git
cd geomesaThe project is built using Maven. To build, run:
mvn clean install -Dmaven.test.skipThe full build takes quite a while. To speed it up, you may use multiple threads (-T 1.5C).
To run unit tests, omit the -Dmaven.test.skip (note: requires docker to be available).
GeoMesa also provides experimental support for the Bloop compile server, which provides fast incremental compilation. To export the GeoMesa build to Bloop, run:
./build/scripts/bloop-export.shFor more information on using Bloop, refer to the Bloop documentation.
To build for a different Scala version (e.g. 2.13), run the following script, then build as normal:
./build/scripts/change-scala-version.sh 2.13When building on OS X and using Docker Desktop in a non-default configuration, you may need to edit ~/.testcontainers.properties to contain the following:
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy