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_HOME
和 HADOOP_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目录。
看见 升级指南 有关在不同版本之间升级的更多详细信息。