首页 文章

表名geomesa-hbase / geoserver出错

提问于
浏览
0

我正在使用geomesa hbase开发一个geoserver,但是当我创建一个新的数据存储时,我在bigtable.table.name中遇到了一些问题 .

问题是我的所有表的名称都像这个'published.cityos.fonts',但是当我保存商店时给我一个像这样的错误

创建数据存储时出错,请检查参数 . 错误消息:字符串索引超出范围:-1

我复制了一个表来进行测试并命名为'cityos.fonts'并且我没有收到任何错误 .

是否有可能在不必复制和重命名100个表的情况下解决问题?

非常感谢你提前 .

控制台出错:

WARN [data.store] - 获取新数据存储时出错java.io.IOExceptionç由以下引起:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:在org处的java.lang.String.substring(未知源)处的-1 . 位于org.locationtech的org.locationtech.geomesa.index.metadata.CachedLazyMetadata $$ anonfun $ getFeatureTypes $ 1.apply(CachedLazyMetadata.scala:57)的locationtech.geomesa.index.metadata.CachedLazyMetadata $ .decodeRow(CachedLazyMetadata.scala:137) .geomesa.index.metadata.CachedLazyMetadata $$ anonfun $ getFeatureTypes $ 1.apply(CachedLazyMetadata.scala:57)位于org.locationtech.geomesa.utils的scala.collection.Iterator $$ anon $ 11.next(Iterator.scala:370) .collection.CloseableIterator $$ anon $ 2.next(CloseableIterator.scala:36)at scala.collection.Iterator $ class.toStream(Iterator.scala:1180)at org.locationtech.geomesa.utils.collection.CloseableIterator $$ anon $ 2 .toStream(CloseableIterator.scala:34)位于org.locationtech.geomesa.u的scala.collection.TraversableOnce $ class.toSeq(TraversableOnce.scala:296)位于org.locationtech.geomesa.hbase的org.locationtech.geomesa.index.metadata.CachedLazyMetadata $ class.getFeatureTypes(CachedLazyMetadata.scala:57)的tils.collection.CloseableIterator $$ anon $ 2.toSeq(CloseableIterator.scala:34) . 位于org.vfny.geoserver.util.DataStoreUtils.getDataAccess(DataStoreUtils.java)的org.locationtech.geomesa.index.geotools.GeoMesaDataStore.getTypeNames(GeoMesaDataStore.scala:137)中的data.HBaseBackedMetadata.getFeatureTypes(HBaseBackedMetadata.scala:19): 97)at org.geoserver.catalog.ResourcePool.getDataStore(ResourcePool.java:649)

2 回答

  • 0

    我认为这个问题不是由于表名,而是由于第一个表中的额外数据 . GeoMesa期望目录表仅包含简单的要素类型元数据 . 要确定给定目录中的简单要素类型,GeoMesa会扫描表并使用正则表达式从行值中提取类型名称 . 例如, abastament_agbarType~attributes 表示类型名称为 abastament_agbarType . 原始表似乎有很多非GeoMesa行,这导致行正则表达式失败 .

    我创建了一张跟踪问题的票证here . 我们可以添加try / catch并在无效行上记录警告 . 但是,即使使用该修复程序,在目录中包含大量数据也会使 getTypeNames 非常慢,因此如果可能,您应该避免使用它 .

  • 0

    一旦做出改变......

    当我尝试从源代码构建时,当我到达geomesa-index-api的部分时,它就会停止 . 我收到编译错误 .

    [ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.1:compile (scala-compile-first) on project geomesa-index-api_2.11: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR]   mvn <goals> -rf :geomesa-index-api_2.11
    

    我正在用这个cli命令构建:

    mvn clean install -DskipTests -Dcheckstyle.skip

    当我构建没有更改时,它构建好,没有任何错误

    谢谢 .

相关问题