23. 升级指南¶
本部分包含有关版本升级的一般信息,以及可能影响最终用户的特定于版本的更改。
23.1. 跨版本的兼容性¶
23.1.1. 语义版本化¶
从2.0.0开始,GeoMesa坚持 semantic versioning 。从本质上讲,发布分为主要版本、次要版本和补丁版本。对于像2.0.1这样的版本号,2是主要版本,2.0是次要版本,2.0.1是补丁版本。
主要版本更新包含突破性的公开API更改。次要版本更新包含向后兼容的新功能或更新功能。补丁版本只包含向后兼容的错误修复。这一划分使用户能够衡量更新版本的潜在影响。
警告
2.0.0之前的版本不遵循语义版本控制,每个版本都应该被视为一个重大的版本更改。
23.1.2. 兼容性¶
语义版本控制提供了API保证,但GeoMesa有几个兼容性向量需要考虑:
23.1.2.1. 数据兼容性¶
数据兼容性指的是读写使用旧版本的GeoMesa写入的数据的能力。GeoMesa完全支持1.2.2或更高版本写入的数据,大部分支持1.1.0或更高版本写入的数据。
请注意,虽然较高版本可以读取较早的数据,但反之亦然。使用较新的客户端写入的数据可能无法被较旧的客户端读取。
使用1.2.1或更早版本写入的数据可以迁移到较新的数据格式。看见 升级现有索引 有关详细信息(请注意,此功能目前仅针对Acumulo实现)。
23.1.2.2. API兼容性¶
GeoMesa公共API当前未明确定义,因此仅在GeoTool中保证API兼容性 DataStore 水平。将来,GeoMesa将明确指出哪些类和方法是公共API的一部分。在次要版本之间,非公共类可能会在没有警告的情况下发生更改。
23.1.2.3. 二进制兼容性¶
二进制兼容性指的是在单个环境中拥有不同的GeoMesa版本的能力。环境可以是单个进程,也可以跨越多个服务器(例如,接收管道、查询客户端和分析平台)。对于具有分布式组件(HBase和Acumulo)的数据存储,环境包括客户端和分布式代码。
GeoMesa要求环境中的所有JAR都是相同的次要版本,并且单个JVM中的所有JAR都是相同的补丁版本。
23.1.2.4. 依赖项兼容性¶
依赖兼容性是指无需更新其他组件(如Acumulo、HBase、Hadoop、Spark、Geoserver等)即可更新GeoMesa的能力。一般来说,GeoMesa支持一系列依赖版本(例如,Acumulo 1.6到1.9)。由于使用了私有的Spark API,Spark版本的耦合更加紧密。
23.1.2.5. 预发行代码¶
GeoMesa有时会提供阿尔法或贝塔状态的模块。尽管它们共享整个GeoMesa版本号,但这些模块应该被视为1.0之前的版本,并且不保证提供任何跨版本的向前或向后兼容性。预发行版模块将在文档中明确标记。
23.1.3. 兼容性表¶
主修 |
小调 |
补片 |
|
---|---|---|---|
数据 |
Y |
Y |
Y |
API |
N |
Y |
Y |
二进位 |
N |
N |
Y |
相依性 |
N |
N |
Y |
23.2. 版本4.1.0升级指南¶
23.2.1. 依赖项版本升级¶
已升级以下依赖项:
春季安全
5.8.0
->5.8.3
23.2.2. 不推荐使用的类和方法¶
以下类已弃用,并将在未来版本中删除:
org.locationtech.geomesa.kafka.confluent.SchemaParser.GeoMesaAvroDeserializableEnumProperty
23.3. 版本4.0.0升级指南¶
23.3.1. 版本兼容性¶
GeoMesa 4.0.0专注于升级依赖版本和移除不推荐使用的功能,并且只包含一些新功能。为了使升级更容易,4.0.x版通常在不同环境下与3.5.x版兼容。这意味着可以部分升级;例如,将Geoserver升级到4.0.0,但将NiFi保持在3.5.1。请注意,一旦环境的任何部分升级到4.0.0,以前不推荐使用的功能(见下文)可能不再起作用。
23.3.2. Scala版本¶
Scala 2.11支持被移除,而Scala 2.13支持被添加(除了现有的Scala 2.12支持之外)。
23.3.3. GeoTool/Geoserver版本¶
GeoTools已从 23.3
至 28.2
。Geoserver已从 2.17.3
至 2.22.2
。JTS已从 1.17.0
至 1.19.0
。
作为此次升级的一部分,各种GeoTools方法以不兼容的方式进行了更改。特别是几个班级 Query
和 SimpleFeatureBuilder
,已经从接受数组改为使用varargs(变量参数)。此外,各种不同的 DataStore
方法,如 DataStoreFinder
,现在需要 Map<String, ?>
而不是 Map<String, ? extends Serializable>
。
23.3.4. 依赖项版本升级¶
升级了以下高级依赖项:
阿帕奇Hadoop
2.8.5
->2.10.2
阿帕奇火花
2.4.7
->3.3.1
阿帕奇累积图
2.0.0
->2.0.1
阿帕奇HBase
1.4.12
->1.4.14
,2.2.3
->2.5.2
阿帕奇·卡夫卡
2.1.1
->2.8.2
阿帕奇箭头
0.16.0
->11.0.0
阿帕奇·阿夫罗
1.8.2
->1.11.1
阿帕奇镶木地板
1.9.0
->1.12.3
阿帕奇ORC
1.5.4
->1.8.2
绝地武士
3.0.1
->4.3.1
融合
5.1.0
->6.2.7
Kryo
3.0.3
->4.0.2
类型安全配置
1.3.3
->1.4.2
EJML
0.34
->0.41
撒克逊人
9.7.0-20
->11.4
有关所有依赖项的完整更改列表,请参阅 here 。
23.3.5. 最低库版本¶
已放弃对某些库的旧版本的支持。现在需要以下最低版本:
阿帕奇累积图
2.0.0
(放弃了对1.7
,1.8
,1.9
,以及1.10
)阿帕奇火花
3.0
(放弃了对2.4
)阿帕奇·卡夫卡
2.0
(放弃了对0.10
,0.11
,1.0
,以及1.1
)
23.3.6. 删除不推荐使用的模块¶
已删除以下不推荐使用的模块:
Geomesa-Bigtable
Geomesa-kudu
风景区-溪流
Geomesa-gejson
Geomesa-Web
Geomesa-Feature-nio
Geomesa-转换-指标-云表
Geomesa-转换指标-Ganglia
Geomesa.换算.公制.石墨
此外,还删除了其他各种不推荐使用的类和方法。要识别任何需要更改的代码,请根据GeoMesa 3.5.1构建您的项目,并注意编译器生成的任何弃用警告。
23.3.7. 套餐更改¶
为了支持Java 11模块,移动、重命名或拆分了以下程序包:
org.locationtech.geomesa.jobs.accumulo
->org.locationtech.geomesa.accumulo.jobs
org.locationtech.geomesa.spark.accumulo
->org.locationtech.geomesa.accumulo.spark
org.locationtech.geomesa.spark.hbase
->org.locationtech.geomesa.hbase.spark
org.locationtech.geomesa.arrow.vector
(partial) ->package org.locationtech.geomesa.arrow.jts
org.locationtech.geomesa.parquet
->org.locationtech.geomesa.fs.storage.parquet
org.locationtech.geomesa.process
(partial) ->org.locationtech.geomesa.process.wps
23.3.8. GeoMesa NiFi变化¶
GeoMesa NiFi现在是针对NiFi 1.19.1构建的。GeoMesa Nars和Jars已重新命名,以包括Scala版本(即 geomesa-datastore-services-nar_2.12-4.0.0.nar
)。特定于数据存储的处理器(例如 PutGeoMesaHBase
)已被删除,转而支持通用处理器(例如 PutGeoMesa
)。推荐的升级路径是首先升级到GeoMesa NiFi 3.5.1,然后更换流程中所有特定于数据存储区的处理器。这将确保流在升级到GeoMesa NiFi 4.0.0后仍然有效。这个 geomesa-accumulo2-nar
已被替换为 geomesa-accumulo20-nar
,并且还有一个额外的 geomesa-accumulo21-nar
支持Acumulo 2.1。
23.3.9. 扫描范围更改¶
GeoMesa现在将根据以下条件生成更准确的范围数 geomesa.scan.ranges.target
。已配置此属性的用户应验证其设置是否仍然合适,特别是在设置为较大值的情况下。设置 geomesa.scan.ranges.recurse
至 7
如果需要,将恢复旧的行为。
23.3.10. 分区的PostGIS查询更改¶
GeoMesa现在将忽略分区的PostGIS数据存储中覆盖整个世界的查询。有关详细信息,请参阅 配置过滤器优化 。
23.4. 版本3.5.0升级指南¶
23.4.1. 删除Log4j¶
GeoMesa已更新,禁止所有使用 log4j
, to mitigate various CVEs present in that framework. In most cases, GeoMesa uses slf4j
, and delegates to the logging framework of the runtime environment. However, this change impacts the JARs bundled with the command-line tools, which now ship with reload4j 取而代之的是。使用GeoMesa的其他环境(即Geoserver)必须独立加强。
23.4.2. 卡夫卡系列化¶
GeoMesa Kafka数据存储现在支持新的串行化格式, avro-native
。此格式使用Avro数组和贴图类型 List
和 Map
输入属性,这使得使用标准Avro工具更容易阅读。请注意,3.5.0之前的GeoMesa版本将不能使用以此格式编写的主题。
23.4.3. 不推荐使用的模块¶
以下模块已弃用,并将在未来版本中删除:
GeoMesa Bigtable
23.4.4. 依赖关系更新¶
Org.slf4j:slf4j-api:
1.7.25
->1.7.36
Com.google.code.gson:gson:
2.8.1
->2.8.9
23.5. 版本3.3.0升级指南¶
23.5.1. Scala版本¶
默认情况下,GeoMesa NiFi Nars现在附带Scala 2.12。这在很大程度上对最终用户应该是透明的,然而,任何在NiFi中使用并用Scala编写的定制GeoMesa转换器JAR都需要使用Scala 2.12编译。
23.6. 版本3.2.0升级指南¶
23.6.1. Scala版本¶
GeoMesa现在支持Scala 2.12。Scala 2.11支持已被弃用,并将在未来的版本中删除。
23.6.2. 火花版¶
GeoMesa现在支持Spark 3.0和3.1。对Spark 2.3和2.4的支持已被弃用,并将在未来版本中删除。
23.6.3. 依赖关系更新¶
Com.fasterxml.jackson:
2.9.10
->2.12.1
23.6.4. 文件系统数据存储元数据格式更改¶
文件系统数据存储区的元数据格式已更改,以支持存储任意键-值对。早期版本的GeoMesa将无法读取使用3.2.0或更高版本写入的任何数据。
23.6.5. Lambda数据存储二进制分布更改¶
Lambda数据存储二进制分发版不再包含 geomesa-accumulo-distributed-runtime
罐子。此JAR在Acumulo数据存储二进制分发版中可用。
23.6.6. Strategy Decider API更新¶
这个 org.locationtech.geomesa.index.planning.StrategyDecider
API已扩展为可选的 GeoMesaStats
支持基于统计数据的战略决策的参数。旧的API方法已被弃用,并将在未来的版本中删除。
23.6.7. 不推荐使用的模块¶
以下模块已弃用,并将在未来版本中删除:
格梅萨库杜
GeoMesa流(骆驼集成)
GeoMesa网站
GeoMesa GeoJSON
23.6.8. 不推荐使用的箭头输出选项¶
用于提供缓存词典、返回多个逻辑文件和分两次运行查询的Arrow输出选项已被弃用,将在下一个主要版本中删除。
23.7. 版本3.1.0升级指南¶
23.7.1. Maven类型的Geoserver插件模块¶
所有的 geomesa-*-gs-plugin
文物已更改为 <type>pom</type>
,因为它们不包含任何代码。任何 pom.xml
应该更新对它们的引用以使用正确的类型。
23.7.2. Avro版本更新¶
GeoMesa使用的Avro版本已从1.7.5更新到1.8.2。Avro序列化文件应在不同版本之间兼容,但如果项目使用Avro并引用GeoMesa,则可能需要更新编译和运行时依赖项。
23.7.3. 查询拦截器API更改¶
查询拦截器API已扩展为支持查询卫士。任何现有的查询拦截器实现都将继续工作,但可能需要针对GeoMesa 3.1.0重新编译。
23.7.4. 依赖关系更新¶
GeoTools:
23.0
->23.3
Avro:
1.7.5
->1.8.2
23.8. 3.0.0版升级指南¶
23.8.1. 删除不推荐使用的模块和类¶
GeoMesa 3.0.0删除了几个较少使用的模块,以及各种过时的类和方法。
移除的模块包括: geomesa-accumulo/geomesa-accumulo-compute
, geomesa-accumulo/geomesa-accumulo-native-api
, geomesa-accumulo/geomesa-accumulo-raster-distributed-runtime
, geomesa-accumulo/geomesa-accumulo-raster
, geomesa-accumulo/geomesa-accumulo-security
, geomesa-accumulo/geomesa-accumulo-stats-gs-plugin
, geomesa-convert/geomesa-convert-scripting
, geomesa-convert/geomesa-convert-simplefeature
, geomesa-hbase/geomesa-hbase-native-api
, geomesa-metrics
, geomesa-native-api
, geomesa-spark/geomesa-spark-geotools
, geomesa-blobstore/*
,以及 geomesa-web/geomesa-web-data
。
中详细介绍了删除的类和方法 GEOMESA-2284 。
23.8.2. HBase 2支持¶
GeoMesa 3.0.0同时支持HBase 1.4和HBase 2.2。不再支持HBase 1.3。HBase 2.0和2.1不受官方支持,但在某些情况下可能会起作用。
现在有两个独立的模块用于HBase过滤器和协处理器- geomesa-hbase-distributed-runtime-hbase1
和 geomesa-hbase-distributed-runtime-hbase2
。上一次 geomesa-hbase-distributed-runtime
模块已被移除。用户应该安装与他们的HBase安装对应的分布式运行时。
同样,现在有两个独立的模块支持HBase Spark- geomesa-hbase-spark-runtime-hbase1
和 geomesa-hbase-spark-runtime-hbase2
。上一次 geomesa-hbase-spark-runtime
模块已被移除。用户应该使用与其HBase安装对应的Spark运行时。
23.8.3. 支持Acumulo 2¶
GeoMesa 3.0.0在Hadoop 2.8上支持Acumulo 1.9,在Hadoop 3上支持Acumulo 2.0。不再支持Acumulo的早期版本,但在某些情况下可能会起作用。
现在有两个独立的模块用于Acumulo Spark支持- geomesa-accumulo-spark-runtime-accumulo1
和 geomesa-accumulo-spark-runtime-accumulo2
。上一次 geomesa-accumulo-spark-runtime
模块已被移除。用户应使用与其Acumulo安装对应的Spark运行时。
23.8.4. NiFi处理器¶
GeoMesa NiFi处理器已更新到NiFi 11,并拆分成独立的 nar
每个受支持的后端数据库的文件。此外,还有单独的 nar
分别用于HBase 1.4/2.2和Acumulo 1.9/2.0的文件。处理器类别和配置也发生了变化。看见 GeoMesa NiFi捆绑包 了解更多细节。
23.8.5. 依赖关系更新¶
阿帕奇箭头:
0.10
->0.16
23.8.6. 阿帕奇箭头更新¶
作为升级到ApacheArrow 0.16的一部分,geomesa-arrow模块进行了重构,以简化内存管理和分配。一些类已被删除,一些接口已更改。这可能会影响任何直接使用geomesa-arrow模块的人。
Arrow 0.15中更改了Arrow IPC格式。默认情况下,较旧的客户端可能无法读取Arrow编码的结果。要启用传统的Arrow IPC格式,请设置系统属性 geomesa.arrow.format.version
至 0.10
,或使用查询提示 ARROW_FORMAT_VERSION
。看见 箭头编码 了解更多细节。
23.8.7. 转换器日期函数¶
转换器功能 isoDate
和 isoDateTime
已更新,以匹配等效的Java DateTimeFormatter
图案。 isoDate
已经从 yyyyMMdd
至 yyyy-MM-dd
,而 isoDateTime
已经从 yyyyMMdd'T'HHmmss.SSSZ
至 yyyy-MM-dd'T'HH:mm:ss
。旧模式仍然可以通过 basicDate
和 basicDateTime
。
23.8.9. 已删除Acumulo默认可见性¶
Acumulo数据存储参数 geomesa.security.visibilities
已经被移除了。可见性应按功能设置,如中所述 数据安全 。
23.9. 版本2.4.0升级指南¶
23.9.1. GeoTools 21和Geoserver 2.15¶
GeoMesa 2.4.0是针对GeoTools 21.1和Geoserver 2.15编译的。此版本的GeoTools包含支持Java 11的包和类位置更改。由于这些更改,GeoMesa将不再与旧版本的GeoTools和Geoserver一起使用。
23.9.2. 配置缓存的统计信息¶
GeoMesa 2.4.0将缓存统计信息的配置从数据存储参数(每次都必须设置该参数)移动到要素类型用户数据(在创建模式时设置一次,并且仅通过显式模式更新进行更改)。看见 配置缓存的统计信息 了解更多详细信息。
在早期版本中创建的要素类型将继续执行以前的操作,每次的配置由数据存储参数确定。配置可以通过永久设置 updateSchema
数据存储方法或 update-schema CLI命令。
23.9.3. 时间戳属性的索引¶
GeoMesa 2.4.0完全支持索引 java.sql.Timestamp
属性。在以前的版本中,时间戳属性索引不受官方支持,但它们在某些情况下确实有效。GeoMesa 2.4.0将无法再读取使用旧版本写入时间戳属性索引的任何数据。要迁移旧数据, truncate the index table 首先,然后重写所有现有记录:
import org.geotools.data.{DataStoreFinder, Query, Transaction}
import org.locationtech.geomesa.index.geotools.GeoMesaDataStore
import org.locationtech.geomesa.utils.geotools.FeatureUtils
val params: java.util.Map[String, String] = ??? // data store connection parameters
val ds: GeoMesaDataStore[_] = DataStoreFinder.getDataStore(params).asInstanceOf[GeoMesaDataStore[_]]
val typeName: String = ??? // simple feature type name to update
val timestamps: Seq[String] = ??? // names of any timestamp-type attributes
val indices = ds.manager.indices(ds.getSchema(typeName)).filter(_.attributes.headOption.exists(timestamps.contains))
val writer = ds.getIndexWriterAppend(typeName, indices)
val features = ds.getFeatureReader(new Query(typeName), Transaction.AUTO_COMMIT)
try {
while (features.hasNext) {
FeatureUtils.write(writer, features.next(), useProvidedFid = true)
}
} finally {
features.close()
writer.close()
}
23.9.4. NiFi处理器更换¶
GeoMesa NiFi处理器已经进行了重构,以支持NiFi NAR继承,并作为支持Java 11的第一步。只要您不删除旧的GeoMesa nar文件,任何现有的处理器都将继续在旧版本下工作。但是,您需要创建新的处理器才能升级到2.4.0。
23.9.5. 分发安装捆绑包¶
从GeoMesa 2.4.0开始,安装包(二进制分发版和Geoserver插件tar文件)将不再托管在Maven Central上。它们将继续在以下时间提供 GitHub 以及 Locationtech Maven Repository 。请注意,这只适用于大型安装包;GeoMesa将继续将JAR文件发布到Maven Central。
23.9.6. HBase Geoserver插件安装¶
GeoMesa HBase Geoserver插件安装tar文件已更新,删除了带阴影的HBase客户端JAR。现在必须单独安装适用于您的HBase版本的客户端JAR。看见 在Geoserver中安装GeoMesa HBase 了解更多细节。
如果需要,着色的GeoMesa JAR仍可从Maven获得,因为 org.locationtech.geomesa:geomesa-hbase-gs-plugin_2.11
使用分级器 shaded
。然而,这很可能会在下一个主要版本中删除。
23.10. 版本2.3.0升级指南¶
23.10.1. 默认查询规划类型¶
GeoMesa 2.3.0将默认的查询规划类型从基于统计更改为基于启发式。这只会影响Acumulo数据存储,因为其他存储还没有实现统计。要启用基于统计的查询规划,请参阅 查询规划类型 。
23.10.2. 不变的简单要素类型¶
GeoMesa 2.3.0从调用返回不可变对象 getSchema
。这允许重用SimpleFeatureType实例,从而减少开销。在大多数情况下,这不会对最终用户产生影响,但是请注意,可变和不可变的要素类型永远不会 equals
当直接比较时。
为了更新架构,或者如果出于某些其他原因需要可变性,则调用 org.locationtech.geomesa.utils.geotools.SimpleFeatureTypes.mutable()
来创建一个可变的副本。Java用户可以调用 org.locationtech.geomesa.utils.interop.SimpleFeatureTypes.mutable()
取而代之的是。
23.10.3. 文件系统存储API更改¶
文件系统存储API仍被视为测试级软件,并已在此版本中进行了更新。数据存储区API没有更改,但此版本中的内部类接口已更改,这可能需要更改用户代码。
此外,用于存储元数据文件的格式已更新,因此旧版本的GeoMesa将无法读取使用此版本创建的元数据。
23.10.4. 不推荐使用的模块¶
以下模块已弃用,并将在未来版本中删除:
GeoMesa栅格
GeoMesa原生API
GeoMesa Blob商店
GeoMesa指标
23.11. 版本2.2.0升级指南¶
23.11.1. GeoTools 20和Geoserver 2.14¶
GeoMesa 2.2.0是针对GeoTools 20.0和Geoserver 2.14编译的。此版本的GeoTools将JTS从1.14升级到1.16,其中包括项目到Locationtech的过渡。新版本的JTS将包从 com.vividsolutions
至 org.locationtech.jts
。由于包重命名,GeoMesa将不再与旧版本的GeoTools和Geoserver一起使用。
警告
GeoMesa 2.2.0需要GeoTools 20.x和Geoserver 2.14.x。
23.11.2. Acumulo数据存储区地理服务器安装¶
使用Geoserver时,GeoMesa Acumulo数据存储现在需要Acumulo客户端Jars 1.9.2或更高版本。这是由于早期的Acumulo客户端和Geoserver 2.14之间的类路径冲突造成的。幸运的是,较新的Acumulo客户端可以与较旧的Acumulo实例对话,因此只需升级Geoserver中的客户端JAR,而不需要升级整个Acumulo集群。
23.12. 版本2.1.0升级指南¶
23.12.1. 转换器更新¶
已更新和简化了GeoMesa转换器API。旧的API已被弃用,虽然针对它编写的自定义转换器应该仍然有效,但鼓励用户迁移到 org.locationtech.geomesa.convert2.SimpleFeatureConverter
。提供了兼容性桥,以便向新的或旧的API注册的所有转换器对两者都可用。
转换器定义应该继续工作,但由于更严格的配置解析,一些无效的定义可能会开始失败。
23.12.1.1. XML转换器命名空间¶
XML解析现在是名称空间感知的。这应该不会影响大多数操作,但在XML Element对象上操作的任何自定义转换器函数都可能需要考虑到这一点(例如,自定义XPath查询)。
23.12.2. 分布式运行时版本检查¶
为了防止由于JAR版本不匹配而导致的意外错误,GeoMesa可以扫描分布式类路径以验证分布式类路径上的兼容版本。可以通过设置系统属性来启用此行为 geomesa.distributed.version.check=true
。
23.12.3. Shapefile摄取¶
通过GeoMesa命令行工具获取的shapefile已更改为使用转换器定义。这允许在摄取过程中对shapefile进行动态修改,但该命令现在需要用户确认。前面的行为可以通过传递 --force
到摄取指挥部。
23.12.4. 自动摄取分隔文本¶
GeoMesa以前支持自动摄取特殊格式的分隔CSV和TSV文件。此功能已被标准摄取类型推理所取代,后者的工作原理相似,但可能会产生不同的结果。通常,通过使用类型推断创建转换器定义,然后修改转换器以将要素ID设置为第一列,可以复制前面的行为 ($1
)。
23.12.5. 文件系统存储API更改¶
文件系统存储API仍被视为测试级软件,并已在此版本中进行了更新。数据存储区API没有更改,但此版本中的内部类接口已更改,这可能需要更改用户代码。
此外,用于存储元数据文件的格式已更新,因此旧版本的GeoMesa将无法读取使用此版本创建的元数据。当第一次访问较旧的元数据时,GeoMesa会将文件更新为新格式,这可能会破坏任何仍在使用的旧客户端。
最后, update-metadata
Tools命令已被替换为 manage-metadata
。
23.12.6. Spark版本更新¶
GeoMesa现在基于Spark 2.3.1构建,并支持版本2.2.x和2.3.x。
23.12.7. Arrow版本更新¶
用于Arrow编码结果的ApacheArrow版本已从0.6.0更新到0.10.0。由于Arrow进程间通信(IPC)格式的更改,客户端可能需要更新到相同的Arrow版本。
23.12.8. Scalatra版本更新¶
用于Web Servlet的scalatra版本已更新到2.6.3。新版本需要json4s 3.5.4,这可能需要更改用于部署Servlet的Web服务器。
23.13. 版本2.0.0升级指南¶
23.13.1. GeoTools 18和Geoserver 2.12¶
GeoMesa 2.0.0是针对GeoTools 18.0和Geoserver 2.12编译的。升级Geoserver实例时,通常最好使用新的Geoserver数据目录重新开始。如果在运行GeoMesa 1.3.x或更早版本的现有Geoserver实例中升级GeoMesa,层仍可用,但您将无法编辑任何现有的GeoMesa存储。为了编辑商店,您需要删除它们,然后通过Geoserver用户界面重新创建它们。或者,您可以编辑Geoserver datastore.xml
文件(位于Geoserver数据目录中)以匹配新的GeoMesa数据存储参数(如下所述)。特别是,您将需要添加一个 namespace
参数,该参数与Geoserver存储的工作空间匹配。
23.13.2. 数据存储参数¶
调用中使用的数据存储参数 DataStoreFinder
和《火种》 SpatialRDDProvider
已经标准化了。新参数在各个数据存储页面中进行了概述:
较旧的参数名称将继续使用,但已弃用,可能会在未来的版本中删除。
23.13.3. 删除Joda时间¶
随着对 java.time
in Java 8, the Joda Time project has been deprecated. As such, GeoMesa has removed its Joda dependency in favor of java.time
. One consequence of this is that custom date patterns in geomesa-convert
are interpreted slightly differently. See DateTimeFormatter 了解更多细节。
警告
特别是,“时代年”已从 Y
至 y
。 Y
NOW的意思是“以周为基础的一年”,并且会给出不同的结果。
23.13.4. Saxon XML解析器¶
默认情况下,GeoMesa转换器XML模块现在随Saxon-HE一起提供。Saxon-HE在解析XML方面通常比默认的Java实现快得多。以前,Saxon是一个额外的下载版本。
警告
Saxon解析与默认Java实现有一些不同,这可能会导致现有的转换器定义失败。特别是,Saxon对XML名称空间的要求要严格得多。看见 使用Saxon处理命名空间 以获取更多信息。
23.13.5. 卡夫卡数据存储¶
Kafka数据存储已被重写为适用于所有支持的Kafka版本的单一实现。已移除对Kafka 0.8的支持。看见 卡夫卡数据存储 以获取更多信息。
23.13.6. 累积式标准化¶
为了标准化数据存储实现之间的行为, AccumuloDataStore
已被修改。
23.13.6.1. 属性索引覆盖率¶
使用指定的累积属性索引 index=true
现在将创建完整的属性索引,而不是连接索引。要创建联接索引,请显式指定 index=join
。现有架构不受影响。
23.13.6.2. 记录索引标识符¶
《累积体》 record
索引已重命名为 id
指数。通常情况下,这不会有任何影响,但是在指定 geomesa.indices.enabled
,价值 id
必须用来代替 records
。
23.13.6.3. 工具命令名¶
Acumulo命令行工具脚本已从重命名 geomesa
至 geomesa-accumulo
。
23.13.7. 表格拆分器¶
拆表接口已更改。任何定制的表拆分器实现 org.locationtech.geomesa.index.conf.TableSplitter
将需要为新的方法签名进行更新。此外,已弃用并替换了提供的GeoMesa拆分器。看见 配置索引拆分 了解更多详细信息。
23.13.8. 系统属性¶
与时间相关的系统属性已标准化,以使用所有可读持续时间。持续时间可以指定为一个数字后跟一个时间单位,例如 10 minutes
或 30 seconds
。以下属性已更改为接受持续时间,有些属性已重命名。请注意,这将影响在JVM中设置的系统属性以及任何自定义 geomesa-site.xml
档案。更多详细信息,请参阅 运行时配置 或适当的数据存储配置节。
属性 |
以前的名字 |
---|---|
geomesa.query.timeout |
geomesa.query.timeout.millis |
geomesa.metadata.expiry |
不适用 |
geomesa.batchwriter.latency |
geomesa.batchwriter.latency.millis |
geomesa.batchwriter.latency |
geomesa.batchwriter.latency.millis |
geomesa.stats.compact.interval |
geomesa.stats.compact.millis |
geomesa.cassandra.read.timeout |
geomesa.cassandra.read.timeout.millis |
geomesa.cassandra.connection.timeout |
geomesa.cassandra.connection.timeout.millis |