我希望能够在 GeoServer 中创建 Cassandra (GeoMesa) 存储。这就是我所做的:
第 1 步:我在 Docker Desktop 中成功拉取并启动了
docker pull oscarfonts/geoserver:2.22.2
。我可以在公开端口 http://localhost:32781/geoserver/index.html 上访问 Geoserver Web 界面。使用 Geoserver v2.22.2 是因为 GeoMesa 文档提到它是受支持的版本:https://www.geomesa.org/documentation/stable/user/geoserver.html。 Cassandra (GeoMesa) 矢量数据源不可用,因为我们尚未安装该插件。
第 2 步:我下载 GeoMesa Cassandra 插件 v4.0.4 并将其提取到 Docker 容器中。我继续按照官方在 GeoServer 中安装 GeoMesa Cassandra 指南执行以下命令行:
# find / -wholename *geoserver/WEB-INF/lib
/usr/local/geoserver/WEB-INF/lib
# find / -name install-dependencies.sh
/home/geomesa-cassandra_2.12-4.0.4/bin/install-dependencies.sh
# /home/geomesa-cassandra_2.12-4.0.4/bin/install-dependencies.sh /usr/local/geoserver/WEB-INF/lib
Reading dependencies from /home/geomesa-cassandra_2.12-4.0.4/conf/dependencies.sh
All required dependencies already exist in /usr/local/geoserver/WEB-INF/lib
// I get this because I already installed it before
第3步:我还使用了manage-geoserver-plugins.sh
脚本。但是,即使 gs-plugins 文件夹中充满了 jar,列表中也没有显示任何 jar
# ./manage-geoserver-plugins.sh /usr/local/geoserver/WEB-INF/lib /home/geomesa-cassandra_2.12-4.0.4/dist/gs-plugins --install
Collecting Installed Jars
Collecting geomesa-gs-plugin Jars
Please choose which modules to install
Multiple may be specified, eg: 1 2 5
Type 'a' to specify all
--------------------------------------
Module(s) to install: a
Done
第4步:我执行了geomesa-cassandra configure
脚本
# ./geomesa-cassandra configure
Current configuration:
GEOMESA_CASSANDRA_HOME=/home/geomesa-cassandra_2.12-4.0.4
GEOMESA_LIB=/home/geomesa-cassandra_2.12-4.0.4/lib
GEOMESA_LOG_DIR=/home/geomesa-cassandra_2.12-4.0.4/logs
Is this correct (y/n)? y
To put geomesa-cassandra on the executable path, add the following line to your environment:
export GEOMESA_CASSANDRA_HOME="/home/geomesa-cassandra_2.12-4.0.4"
export GEOMESA_LIB="/home/geomesa-cassandra_2.12-4.0.4/lib"
export GEOMESA_LOG_DIR="/home/geomesa-cassandra_2.12-4.0.4/logs"
export PATH=${GEOMESA_CASSANDRA_HOME}/bin:$PATH
Register auto-complete for GeoMesa CLI commands (y/n)? y
Enter path to .bash_completion (deault ~/.bash_completion):
#
第5步:重新启动容器,我仍然看不到Cassandra(GeoMesa)作为Geoserver中可能的矢量数据源。
我哪里出错了?谢谢!
GeoServer 实际上很容易在 docker 之外运行。您可以在
GeoServer Archive 获取它。您需要做的就是下载独立于平台的二进制文件,解压 zip,将 GeoMesa Cassandra jar 添加到 webapps/geoserver/WEB-INF/lib/
并使用
bin/startup.sh
启动 GeoServer。