14.3. 以编程方式使用HBase Data Store

14.3.1. 创建数据存储

假设GeoMesa代码位于类路径上,则可以通过普通的GeoTools发现方法获得HBase数据存储的实例。

HBase数据存储还需要一个适当的 hbase-site.xml 类路径上有一个文件;HBase的连接参数是从这个文件中获得的,包括 hbase.zookeeper.quorumhbase.zookeeper.property.clientPort

作为提供以下服务的替代方案 hbase-site.xml ,可以通过参数指定ZooKeeper连接 hbase.zookeepers 。但是,不建议使用此方法,因为其他重要配置(包括安全性,如果有)来自 hbase-site.xml 可能是正确操作所必需的。

Map<String, Serializable> parameters = new HashMap<>();
parameters.put("hbase.catalog", "geomesa");
org.geotools.data.DataStore dataStore =
    org.geotools.data.DataStoreFinder.getDataStore(parameters);

14.3.2. HBase数据存储参数

数据存储采用多个参数(所需参数用标记 * ):

参数

类型

描述

hbase.catalog *

细绳

GeoMesa目录表的名称,包括HBase命名空间(如果有),以 : 。例如, myCatalogmyNamespace:myCatalog

hbase.zookeepers

细绳

HBase ZooKeeper组中以逗号分隔的服务器列表。这是可选的,定义HBase连接的首选方法是 hbase-site.xml

hbase.coprocessor.url

细绳

包含协处理器的GeoMesa JAR的路径,用于自动注册

hbase.config.paths

细绳

其他HBase配置资源文件(逗号分隔)

hbase.config.xml

细绳

其他HBase配置属性,作为标准XML <configuration> 元素

hbase.connections.reuse

布尔型

重新使用和共享HBase连接,或为此数据存储创建新的连接

hbase.remote.filtering

布尔型

可用于在无法安装自定义代码的环境中禁用远程过滤和协处理器

hbase.security.enabled

布尔型

启用HBase安全性(可见性)

geomesa.security.auths

细绳

将用于查询的以逗号分隔的授权超集

geomesa.security.force-empty-auths

布尔型

强制授权为空

geomesa.query.audit

布尔型

正在运行的审核查询。查询将写入日志文件

geomesa.query.timeout

细绳

在终止查询之前允许运行的最长时间。超时被指定为持续时间,例如 1 minute60 seconds

geomesa.query.threads

整型

每个查询要使用的线程数

hbase.coprocessor.threads

整型

每个协处理器查询要使用的HBase RPC线程数

geomesa.query.loose-bounding-box

布尔型

使用松散边界框-查询速度更快,但可能会返回无关的结果

hbase.ranges.max-per-extended-scan

整型

每次扩展扫描的最大范围。范围将根据此设置分组为扫描

hbase.ranges.max-per-coprocessor-scan

整型

每次协处理器扫描的最大范围。范围将根据此设置分组为扫描

hbase.coprocessor.arrow.enable

布尔型

禁用Arrow查询的协处理器扫描,而使用本地编码

hbase.coprocessor.bin.enable

布尔型

禁用协处理器扫描Bin查询,转而使用本地编码

hbase.coprocessor.density.enable

布尔型

禁用协处理器扫描密度查询,转而使用本地处理

hbase.coprocessor.stats.enable

布尔型

禁用STAT查询的协处理器扫描,转而使用本地处理

hbase.coprocessor.yield.partial.results

布尔型

切换协处理器产生部分结果

hbase.coprocessor.scan.parallel

布尔型

切换极并行的协处理器扫描(受RPC线程限制)

geomesa.stats.generate

布尔型

切换统计信息收集(当前未实现)

geomesa.partition.scan.parallel

布尔型

对于分区架构,并行执行扫描,而不是顺序执行

注: hbase.coprocessor.*.enable 参数将被替换为 hbase.remote.filtering=false

有关使用GeoTool的更多信息,请参阅 GeoTools user guide