8.3. Using the Accumulo Data Store Programmatically

8.3.1. Creating a Data Store

An instance of an Accumulo data store can be obtained through the normal GeoTools discovery methods, assuming that the GeoMesa code is on the classpath:

Map<String, String> parameters = new HashMap<>;
parameters.put("accumulo.instance.id", "myInstance");
parameters.put("accumulo.zookeepers", "zoo1,zoo2,zoo3");
parameters.put("accumulo.user", "myUser");
parameters.put("accumulo.password", "myPassword");
parameters.put("accumulo.catalog", "my_table");
org.geotools.data.DataStore dataStore = org.geotools.data.DataStoreFinder.getDataStore(parameters);

More information on using GeoTools can be found in the GeoTools user guide.

8.3.2. Accumulo Data Store Parameters

The Accumulo Data Store takes several parameters (required parameters are marked with *):

Parameter Type Description
accumulo.instance.id * String The ID of the Accumulo instance
accumulo.zookeepers * String A comma separated list of zookeeper servers (e.g. “zoo1,zoo2,zoo3” or “localhost:2181”)
accumulo.user * String Accumulo username
accumulo.password String Accumulo password
accumulo.keytab.path String Path to a Kerberos keytab file containing an entry for the specified user
accumulo.catalog * String The name of the GeoMesa catalog table, including Accumulo namespace, if any (previously tableName)
geomesa.security.auths String Comma-delimited superset of authorizations that will be used for queries via Accumulo
geomesa.security.force-empty-auths Boolean Forces authorizations to be empty
geomesa.security.auth-provider String Class name for an AuthorizationsProvider implementation
geomesa.security.visibilities String Visibilities to apply to all written data
geomesa.query.audit Boolean Audit queries being run. Queries will be stored in a <catalog>_queries table
geomesa.query.timeout String The max time a query will be allowed to run before being killed. The timeout is specified as a duration, e.g. 1 minute or 60 seconds
geomesa.query.threads Integer The number of threads to use per query
geomesa.query.loose-bounding-box Boolean Use loose bounding boxes - queries will be faster but may return extraneous results
accumulo.query.record-threads Integer The number of threads to use for record retrieval
accumulo.write.threads Integer The number of threads to use for writing records
geomesa.stats.generate Boolean Toggle collection of statistics
geomesa.query.caching Boolean Toggle caching of results
accumulo.mock Boolean Use a mock connection (for testing)

Note: one (but not both) of accumulo.password and accumulo.keytab.path must be provided.