GeoMesa Acumulo快速入门¶
本教程是使用Acumulo开始使用GeoMesa的最快、最简单的方法。它是通向其他教程的一个很好的垫脚石,这些教程提供了如何使用GeoMesa的越来越复杂的示例。
关于本教程¶
本着简单的精神,本教程中的代码只做了几件小事:
建立新的(静态)SimpleFeatureType
准备Acumulo表以存储此类型的数据
创建数千个SimpleFeature示例
将这些SimpleFeature写入Acumulo表
查询给定的地理矩形、时间范围和属性过滤器,写出结果集中的条目
使用Geoserver可视化数据(可选)
先决条件¶
在开始之前,您必须具备以下条件:
安装GeoMesa分布式运行时¶
按照下面的说明进行操作 安装Acumulo分布式运行时库 在您的Acumulo实例中安装GeoMesa。
下载并构建教程¶
在您的计算机上选择一个合理的目录,然后运行:
$ git clone https://github.com/geomesa/geomesa-tutorials.git
$ cd geomesa-tutorials
警告
确保下载或检出与您的GeoMesa版本对应的教程项目版本。看见 关于教程版本 了解更多详细信息。
若要确保快速入门适用于您的环境,请修改 pom.xml
为Acumulo、Hadoop等设置适当的版本。
为了便于使用,该项目构建了一个捆绑的构件,该构件在单个JAR中包含所有必需的依赖项。要构建,请运行:
$ mvn clean install -pl geomesa-tutorials-accumulo/geomesa-tutorials-accumulo-quickstart -am
运行教程¶
在命令行上,运行:
$ java -cp geomesa-tutorials-accumulo/geomesa-tutorials-accumulo-quickstart/target/geomesa-tutorials-accumulo-quickstart-${geomesa.version}.jar \
org.geomesa.example.accumulo.AccumuloQuickStart \
--accumulo.instance.name <instance> \
--accumulo.zookeepers <zookeepers> \
--accumulo.user <user> \
--accumulo.password <password> \
--accumulo.catalog <table>
其中,您可以提供以下参数:
<instance>
您的Acumulo实例的名称<zookeepers>
您的ZooKeeper节点,用逗号分隔<user>
有权创建、读取和写入表的Acumulo用户的名称<password>
前面提到的Acumulo用户的密码<table>
将接受这些测试记录的目标表的名称。此表不应存在或应为空
警告
如果已将GeoMesa Acumulo分布式运行时设置为在命名空间内隔离(请参见 命名空间安装 )的价值 <table>
应包括命名空间(例如 myNamespace.geomesa
)。
或者,您也可以指定快速入门在完成时删除其数据。使用 --cleanup
标志,当您运行以启用此行为时。
运行后,您应该会看到以下输出:
Loading datastore
Creating schema: GLOBALEVENTID:String,Actor1Name:String,Actor1CountryCode:String,Actor2Name:String,Actor2CountryCode:String,EventCode:String,NumMentions:Integer,NumSources:Integer,NumArticles:Integer,ActionGeo_Type:Integer,ActionGeo_FullName:String,ActionGeo_CountryCode:String,dtg:Date,geom:Point
Generating test data
Writing test data
Wrote 2356 features
Running test queries
Running query BBOX(geom, -120.0,30.0,-75.0,55.0) AND dtg DURING 2017-12-31T00:00:00+00:00/2018-01-02T00:00:00+00:00
01 719026369=719026369|MEXICO|MEX|AMERICAN|USA|193|6|1|6|4|Playas De Tijuana, Baja California, Mexico|MX|2018-01-01T00:00:00.000Z|POINT (-117.133 32.55)
02 719025074=719025074|||RUSSIA|RUS|042|2|1|2|3|Irvine, California, United States|US|2018-01-01T00:00:00.000Z|POINT (-117.823 33.6695)
03 719025082=719025082|||UNITED STATES|USA|014|2|1|2|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
04 719025084=719025084|||UNITED STATES|USA|031|4|1|4|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
05 719026868=719026868|UNITED STATES|USA|||010|5|1|4|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
06 719026879=719026879|TEXAS|USA|||013|10|2|10|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
07 719026987=719026987|UNITED STATES|USA|||110|4|1|4|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
08 719027257=719027257|UNITED STATES|USA|||036|10|2|10|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
09 719026878=719026878|UNITED STATES|USA|||013|4|2|4|3|Dallas, Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-96.8067 32.7831)
10 719027238=719027238|UNITED STATES|USA|INDUSTRY||081|1|1|1|3|Central Valley, California, United States|US|2018-01-01T00:00:00.000Z|POINT (-119.682 34.0186)
Returned 669 total features
Running query BBOX(geom, -120.0,30.0,-75.0,55.0) AND dtg DURING 2017-12-31T00:00:00+00:00/2018-01-02T00:00:00+00:00
Returning attributes [GLOBALEVENTID, dtg, geom]
01 719025742=719025742|2018-01-01T00:00:00.000Z|POINT (-117.157 32.7153)
02 719025915=719025915|2018-01-01T00:00:00.000Z|POINT (-117.157 32.7153)
03 719025400=719025400|2018-01-01T00:00:00.000Z|POINT (-117.393 33.2103)
04 719025135=719025135|2018-01-01T00:00:00.000Z|POINT (-117.823 33.6695)
05 719026216=719026216|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
06 719026312=719026312|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
07 719026320=719026320|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
08 719026992=719026992|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
09 719027120=719027120|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
10 719026984=719026984|2018-01-01T00:00:00.000Z|POINT (-91.8749 31.1801)
Returned 669 total features
Running query EventCode = '051'
01 719025634=719025634|FIJI|FJI|||051|2|1|2|1|Fiji|FJ|<null>|POINT (178 -18)
02 719027116=719027116|UNITED STATES|USA|KING||051|8|1|8|3|San Diego, California, United States|US|<null>|POINT (-117.157 32.7153)
03 719027117=719027117|LOS ANGELES|USA|KING||051|26|3|26|2|California, United States|US|<null>|POINT (-119.746 36.17)
04 719025036=719025036|||SENATE||051|5|1|5|2|Alabama, United States|US|<null>|POINT (-86.8073 32.799)
05 719026318=719026318|SENATE||UNITED STATES|USA|051|2|1|2|2|Alabama, United States|US|<null>|POINT (-86.8073 32.799)
06 719026296=719026296|CHAMBER||||051|20|1|20|3|Springfield, South Carolina, United States|US|<null>|POINT (-81.2793 33.4968)
07 719025744=719025744|CIVIL SERVANT||||051|20|1|10|3|White House, District of Columbia, United States|US|<null>|POINT (-77.0364 38.8951)
08 719026946=719026946|INDIANA|USA|||051|12|1|12|2|Indiana, United States|US|<null>|POINT (-86.2604 39.8647)
09 719025279=719025279|EDMONTON|CAN|||051|5|1|5|4|Dufferin County, Ontario, Canada|CA|<null>|POINT (-80.1667 44.0833)
10 719027252=719027252|AMERICAN CIVIL LIBERTIES UNION|USA|||051|2|1|2|2|Pennsylvania, United States|US|<null>|POINT (-77.264 40.5773)
Returned 276 total features
Running query EventCode = '051' AND dtg DURING 2017-12-31T00:00:00+00:00/2018-01-02T00:00:00+00:00
Returning attributes [GLOBALEVENTID, dtg, geom]
01 719025634=719025634|2018-01-01T00:00:00.000Z|POINT (178 -18)
02 719027116=719027116|2018-01-01T00:00:00.000Z|POINT (-117.157 32.7153)
03 719027117=719027117|2018-01-01T00:00:00.000Z|POINT (-119.746 36.17)
04 719025036=719025036|2018-01-01T00:00:00.000Z|POINT (-86.8073 32.799)
05 719026318=719026318|2018-01-01T00:00:00.000Z|POINT (-86.8073 32.799)
06 719026296=719026296|2018-01-01T00:00:00.000Z|POINT (-81.2793 33.4968)
07 719025744=719025744|2018-01-01T00:00:00.000Z|POINT (-77.0364 38.8951)
08 719026946=719026946|2018-01-01T00:00:00.000Z|POINT (-86.2604 39.8647)
09 719025279=719025279|2018-01-01T00:00:00.000Z|POINT (-80.1667 44.0833)
10 719027252=719027252|2018-01-01T00:00:00.000Z|POINT (-77.264 40.5773)
Returned 138 total features
快速启动代码也可以通过Maven使用 live-test
配置文件并将连接参数指定为系统属性:
$ mvn -Plive-test exec:exec \
-Daccumulo.instance.name <instance> \
-Daccumulo.zookeepers <zookeepers> \
-Daccumulo.user <user> \
-Daccumulo.password <password> \
-Daccumulo.catalog <table>
看《守则》¶
源代码对于本教程来说是可以访问的。主要逻辑包含在泛型 org.geomesa.example.quickstart.GeoMesaQuickStart
在 geomesa-tutorials-common
模块,它与数据存储区无关。一些相关的方法包括:
createDataStore
从输入配置中获取数据存储实例createSchema
在数据存储中创建架构,作为写入数据的前提条件writeFeatures
使用FeatureWriter
将要素写入数据存储区queryFeatures
对数据存储区运行多个查询cleanup
删除示例数据并处置数据存储实例
QuickStart使用GDELT数据的一小部分。将数据解析为GeoTools SimpleFeature的代码包含在 org.geomesa.example.data.GDELTData
:
getSimpleFeatureType
创建SimpleFeatureType
表示数据getTestData
解析嵌入的TSV文件以创建SimpleFeature
对象getTestQueries
说明了使用CQL(GeoTools的上下文查询语言)的几种不同的查询类型
可视化数据(可选)¶
有两个选项可以查看此快速入门获取的数据。最简单的选择是使用 export
GeoMesa Acumulo工具分发的命令。对于更适合生产的示例,您也可以竖起一个Geoserver并将其连接到您的Acumulo实例。
使用宣传单可视化数据¶
警告
要成功运行此命令,您必须有一台连接到Internet的计算机,以便访问外部传单资源。
这个 export
命令是GeoMesa Acumulo命令行工具的一部分。要使用该命令,请确保已按照中所述安装了命令行工具 设置Acumulo命令行工具 。这个 export
命令提供了 leaflet
格式,该格式将要素导出到您可以在Web浏览器中打开的单张地图。要生成地图,请从GeoMesa Acumulo工具分发目录运行以下命令:
bin/geomesa-accumulo export \
--output-format leaflet \
--instance <instance> \
--zookeepers <zookeepers> \
--user <user> \
--password <password> \
--catalog <table>
其中的连接参数与您在快速入门过程中上面使用的参数相同。要查看地图,只需在Web浏览器中打开该命令提供的URL即可。如果您点击地图右上角的菜单,您可以启用和禁用热图和要素层以及提供的两个基本层。

使用宣传单可视化快速入门数据¶
使用Geoserver可视化数据¶
您可以使用Geoserver访问和可视化存储在GeoMesa中的数据。要使用Geoserver,请下载并安装版本 2.22.2 。然后按照中的说明操作 在Geoserver中安装GeoMesa Acumulo 以启用GeoMesa。
向Geoserver注册GeoMesa商店¶
使用您的用户和密码凭据登录到Geoserver。点击“商店”和“添加新商店”。选择 Accumulo (GeoMesa)
矢量数据源,并填写所需参数。
基本店铺信息:
workspace
这取决于您的Geoserver安装data source name
pick a sensible name, such asgeomesa_quick_start
description
this is strictly decorative;GeoMesa quick start
连接参数:
这些参数值与您在运行本教程时在命令行上提供的参数值相同;它们描述了如何连接到数据所在的Acumulo实例
点击“保存”,Geoserver将在您的累积表中搜索任何GeoMesa管理的要素类型。
发布该层¶
Geoserver应该识别 gdelt-quickstart
要素类型,并应将其显示为可发布的图层。点击“发布”链接。
您将被带到“编辑层”屏幕。您需要为数据边框输入值。在这种情况下,您可以单击链接以根据数据计算这些值。
完成后,请单击“保存”按钮。
瞧一瞧¶
点击左手边沟中的“层预览”链接。如果在结果的第一页上看不到快速启动图层,请在搜索框中输入刚创建的图层的名称,然后按 <Enter>
。
一旦你看到你的层,点击“OpenLayers”链接,这将打开一个新的标签。您应该会看到类似于下图的红点集合:

使用Geoserver可视化快速入门数据¶
调整显示¶
以下是你可以使用可视化效果的几种简单方法:
点击显示屏中的一个红点,Geoserver将报告地图区域下方的详细记录。
按住Shift键并单击以高亮显示地图中要放大到的区域。
点击预览窗口左上角的“切换选项工具栏”图标。屏幕的右侧将包括一个“Filter”文本框。请输入
EventCode = '051'
, and press on the "play" icon. The display will now show only those points matching your filter criterion. This is a CQL filter, which can be constructed in various ways to query your data. You can find more information about CQL from GeoServer's CQL tutorial 。
正在生成热图¶
要尝试服务器端处理,可以从 MAP-减少GDELT的摄取 教程。
配置SLD后,在URL中更改
styles=
成为styles=heatmap
。一旦你按下<Enter>
,则显示将变为密度热图。
备注
要执行此操作,您必须首先安装Geoserver的WPS模块,如中所述 Geoserver插件 。