15.1. 安装GeoMesa Acumulo

备注

GeoMesa目前支持Acumulo versions 2.0 and 2.1 。

备注

以下示例要求在环境中设置版本:

$ export TAG="4.0.2"
$ export VERSION="2.12-${TAG}" # note: 2.12 is the Scala build version

15.1.1. 从二进制分发安装

GeoMesa Acumulo构件可以下载,也可以从源代码构建。最简单的入门方法是从下载最新的二进制版本 GitHub.

下载并将其解压到方便的位置:

# download and unpackage the most recent distribution:
$ wget "https://github.com/locationtech/geomesa/releases/download/geomesa-${TAG}/geomesa-accumulo_${VERSION}-bin.tar.gz"
$ tar xvf geomesa-accumulo_${VERSION}-bin.tar.gz
$ cd geomesa-accumulo_${VERSION}

15.1.2. 从源开始构建

GeoMesa Acumulo也可以从源头上构建。有关详细信息,请参阅上的说明 GitHub 。本章剩余的说明假定使用二进制GeoMesa累积分布。如果您是从源代码构建的,则在 target 目录号 geomesa-accumulo/geomesa-accumulo-dist

15.1.3. 安装Acumulo分布式运行时库

这个 geomesa-accumulo_$VERSION/dist/accumulo/ 目录包含分布式运行时JAR,该JAR包含必须在集群中的每台Acumulo平板电脑服务器上使用的Acumulo服务器端代码。此JAR包含GeoMesa代码和查询GeoMesa数据所需的Acumulo迭代器。

分布式运行时JAR的版本必须与GeoMesa数据存储客户端JAR(通常安装在Geoserver中;见下文)的版本匹配。否则,查询可能无法正常工作或根本不能正常工作。

15.1.3.1. 命名空间安装

GeoMesa利用名称空间和类路径上下文将GeoMesa类路径与Acumulo的其余部分隔离开来。

要安装分布式运行时JAR,首先将其复制到HDFS:

$ hadoop fs -mkdir /accumulo/classpath/myNamespace
$ hadoop fs -put \
  geomesa-accumulo_${VERSION}/dist/accumulo/geomesa-accumulo-distributed-runtime_${VERSION}.jar \
  /accumulo/classpath/myNamespace/

然后通过AcumuloShell配置命名空间类路径:

$ accumulo shell -u root

一旦进入Shell:

> createnamespace myNamespace
> grant NameSpace.CREATE_TABLE -ns myNamespace -u myUser
> config -s general.vfs.context.classpath.myNamespace=hdfs://NAME_NODE_FDQN:9000/accumulo/classpath/myNamespace/[^.].*.jar
> config -ns myNamespace -s table.classpath.context=myNamespace

备注

上面的路径只是一个示例;您可以包含带有项目名称、版本号和其他信息的嵌套文件夹,以便在同一个Acumulo实例上拥有不同版本的GeoMesa。您应该移除下面的所有GeoMesa罐子 $ACCUMULO_HOME/lib/ext 以防止类路径冲突。

备注

使用Acumulo命名空间连接到数据存储时,必须在 accumulo.catalog 参数与命名空间一起使用。例如,请参阅 my_catalog 表为 myNamespace.my_catalog

15.1.3.2. 系统安装

或者,可以将GeoMesa运行时JAR复制到 $ACCUMULO_HOME/lib/ext 每台平板电脑服务器上的文件夹。

警告

不推荐使用此方法,因为GeoMesa类将位于全局Acumulo类路径上,并且可能与Acumulo中安装的其他自定义JAR冲突。

$ for tserver in $(cat $ACCUMULO_HOME/conf/tservers); do \
    scp dist/accumulo/geomesa-accumulo-distributed-runtime_${VERSION}.jar \
    $tserver:$ACCUMULO_HOME/lib/ext; done

15.1.4. 设置Acumulo命令行工具

警告

要将Acumulo数据存储与命令行工具一起使用,您需要首先安装分布式运行时。看见 安装Acumulo分布式运行时库

GeoMesa附带了一组命令行工具,用于管理位于 geomesa-accumulo_${VERSION}/bin/ 二进制分布的。

GeoMesa要求 java 以在默认路径上可用。

15.1.4.1. 配置类路径

GeoMesa在类路径上需要Acumulo和Hadoop JAR。默认情况下,它们不捆绑在一起,因为它们应该与目标系统上安装的版本相匹配。

如果环境变量 ACCUMULO_HOMEHADOOP_HOME ,则GeoMesa将从这些位置加载适当的JAR和配置文件,不需要进一步的配置。否则,在您第一次调用这些工具时,系统将提示您下载适当的JAR。环境变量可以在 conf/*-env.sh 和依赖项版本可以在 conf/dependencies.sh

为了运行映射/还原作业,Hadoop *-site.xml Hadoop安装中的配置文件必须位于类路径中。如果 HADOOP_HOME 未设置,则将它们复制到 geomesa-accumulo_${VERSION}/conf

GeoMesa还提供了使用环境变量将其他JAR添加到类路径的功能 $GEOMESA_EXTRA_CLASSPATHS 。GeoMesa会将此环境变量的内容添加到计算的类路径中,从而使其在类路径中具有最高的优先级。用户可以使用冒号提供JAR文件或单个文件的目录 (: )作为分隔符。这些条目还将添加到map-create libjars变量中。

由于许可限制,必须单独安装形状文件支持的从属项。使用以下命令执行此操作:

$ ./bin/install-shapefile-support.sh

有关日志记录,请参阅 日志记录配置 了解有关配置SLF4J实现的信息。

使用 geomesa-accumulo classpath 用于打印执行GeoMesa命令时将使用的最终类路径的命令。

15.1.4.2. 正在运行的命令

测试调用GeoMesa工具的命令:

$ geomesa-accumulo

输出应如下所示::

Usage: geomesa-accumulo [command] [command options]
  Commands:
  ...

有关可用命令的详细信息,请参见 Acumulo命令行工具

15.1.5. 在Geoserver中安装GeoMesa Acumulo

警告

看见 Geoserver版本 以确保Geoserver与您的GeoMesa版本兼容。

15.1.5.1. 安装Geoserver

如中所述 GeoMesa和Geoserver ,GeoMesa实现了一个 GeoTools -兼容数据存储。这样,就可以将GeoMesa Acumulo用作中的数据存储 GeoServer 。Geoserver的网站包括 installation instructions for GeoServer

Geoserver运行后,您可以选择安装WPS插件。Geoserver WPS插件必须与您的Geoserver实例的版本匹配。Geoserver网站包含下载和安装说明 the WPS plugin

备注

如果使用Tomcat作为Web服务器,则很可能需要传递一些自定义选项:

export CATALINA_OPTS="-Xmx8g -XX:MaxPermSize=512M -Duser.timezone=UTC \
-server -Djava.awt.headless=true"

的价值 -Xmx 应该在您的系统允许的范围内尽可能大。确保重新启动Tomcat以使更改生效。

15.1.5.2. 安装GeoMesa Acumulo数据存储

要安装GeoMesa数据存储,请提取 geomesa-accumulo-gs-plugin_${VERSION}-install.tar.gz 文件放入 geomesa-accumulo_${VERSION}/dist/gs-plugins/ 在二进制分布中或 geomesa-accumulo/geomesa-accumulo-gs-plugin/target/ 放入您的Geoserver的 lib 目录:

$ tar -xzvf \
  geomesa-accumulo_${VERSION}/dist/gs-plugins/geomesa-accumulo-gs-plugin_${VERSION}-install.tar.gz \
  -C /path/to/geoserver/webapps/geoserver/WEB-INF/lib

接下来,安装用于Acumulo和Hadoop的JAR。默认情况下,将从Maven Central下载JAR。您可以通过设置环境变量来覆盖此设置 GEOMESA_MAVEN_URL 。如果您没有互联网连接,您可以手动下载JAR。

编辑文件 geomesa-accumulo_${VERSION}/conf/dependencies.sh 要设置Acumulo和Hadoop的版本以匹配目标环境,然后运行脚本:

$ ./bin/install-dependencies.sh /path/to/geoserver/webapps/geoserver/WEB-INF/lib

安装JAR后重新启动Geoserver。

15.1.5.3. 安装GeoMesa进程

GeoMesa提供了一些WPS进程,例如 geomesa:Density 它被用来生成热图。要使用这些进程,请安装Geoserver WPS插件,如中所述 GeoMesa过程

15.1.6. 升级

要在GeoMesa的次要版本之间升级,所有GeoMesa组件的版本 must 火柴。这意味着 geomesa-distributed-runtime Acumulo平板电脑服务器上安装的JAR must 与的版本匹配 geomesa-plugin 安装在 WEB-INF/lib Geoserver目录。

看见 升级指南 有关在不同版本之间升级的更多详细信息。