geodocker-geomesa安装指南

1,224 阅读2分钟

    最近研究geopyspark原本以为大数据研究能告一段落,因为。。。

emoj
    开玩笑的,还要一起建设社会主义呢!!

背景

    geotrellis作为一个处理遥感数据的框架,对于遥感数据支持的很棒,但是对于矢量数据却有些不足,首先它的样式选择单一,不能像geoserver使用sld自定义出各种样式,其二就是对与矢量的支持稍弱。那为啥么要用geomesa呢?这个框架资料还是比较多的,支持矢量操作,geoserver支持,能提供WFS、WMS服务,所以还是比较看好的。

操作

    我们直接看看github地址,按照提示一步步来安装。下载项目,到geodocker-accumulo-geomesa,运行docker-compose(需要自行安装),下载数据(如http://data.gdeltproject.org/events/20170710.export.CSV.zip),拷贝数据到docker上,进入容器环境,执行导入数据命令,数据导入后会自动解析出geom,并建立索引

git clone https://github.com/geodocker/geodocker-geomesa.git
cd geodocker-accumulo-geomesa; 
docker-compose up
docker ps
docker cp 2016.export.csv geodocker-accumulo-geomesa_accumulo-master_1:/tmp/2016.export.CSV
docker exec -ti geodockeraccumulogeomesa_accumulo-master_1 /usr/bin/bash
 cd /opt/geomesa/bin
$ ./geomesa-accumulo ingest -C example-csv -c example -u root -p GisPwd -s example-csv ../examples/ingest/csv/example.csv

    按照github的说明就能成功了,然后打完收工。。。好吧事实没有那么理想,官网的镜像有坑,按照他们的方法会发现,根本导不进去数据,出现如下错误,缺jar了

原因是导入脚本有问题识别zookeeper.jar出现问题,会把指向具体zookeeper.jar的软连接和原来的zookeeper.jar识别出来(我也是请教了官方大佬才知道)     cd /opt/geomesa/bin执行后,使用vi geomesa-accumulo修改

ZOOKEEPER_JAR="$(find -L $ZOOKEEPER_HOME -maxdepth 1 -type f -name *zookeeper*jar)"

    为

ZOOKEEPER_JAR="$(find -L $ZOOKEEPER_HOME -maxdepth 1 -type f -name *zookeeper*jar | head -n 1)"

    接着就导入成功了

    最后就是使用geoserver发布服务(http://localhost:9090/geoserver/web,admin:geoserver),根据以下的设置设置数据源,并发布服务。

  • accumulo.instance.id = accumulo
  • accumulo.zookeepers = zookeeper
  • accumulo.user = root
  • accumulo.password = GisPwd
  • accumulo.catalog = geomesa.ingest

最后成果

    我分别使用了三份数据,数据量分别是88w、122w、288w,访问wms服务分别需要的时间为4.79s、6.04s、7.27s,速度还是很可观的,还有很大优化空间(目前是单机)。

PS:如果你是用linux导入数据可能会出现超时的现象,需要添加zookeeper超时设置,延长时间(github.com/geodocker/g…

<property>
  <name>instance.zookeeper.timeout</name>
  <value>15000</value>
  <description>timeout limit for zookeeper</description>
</property>

参考链接:
github.com/geodocker/g…
planet.qgis.org/planet/tag/…
www.geomesa.org/documentati…