GeoMesa操作HBase遇到的一些错误解决办法

1.错误一:java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/coprocessor/CoprocessorService

具体如下:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/coprocessor/CoprocessorService
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at org.locationtech.geomesa.hbase.coprocessor.package$.AllCoprocessors$lzycompute(package.scala:28)
	at org.locationtech.geomesa.hbase.coprocessor.package$.AllCoprocessors(package.scala:27)
	at org.locationtech.geomesa.hbase.index.HBaseFeatureIndex$class.configure(HBaseFeatureIndex.scala:95)
	at org.locationtech.geomesa.hbase.index.HBaseZ2Index$.configure(HBaseZ2Index.scala:21)
	at org.locationtech.geomesa.hbase.index.HBaseZ2Index$.configure(HBaseZ2Index.scala:21)
	at org.locationtech.geomesa.index.geotools.GeoMesaDataStore$$anonfun$onSchemaCreated$1.apply(GeoMesaDataStore.scala:161)
	at org.locationtech.geomesa.index.geotools.GeoMesaDataStore$$anonfun$onSchemaCreated$1.apply(GeoMesaDataStore.scala:161)
	at scala.collection.immutable.List.foreach(List.scala:381)
	at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.onSchemaCreated(GeoMesaDataStore.scala:161)
	at org.locationtech.geomesa.index.geotools.MetadataBackedDataStore.createSchema(MetadataBackedDataStore.scala:150)
	at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.createSchema(GeoMesaDataStore.scala:178)
	at org.locationtech.geomesa.hbase.data.HBaseDataStore.createSchema(HBaseDataStore.scala:54)
	at com.zgss.test.Test5.main(Test5.java:31)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.coprocessor.CoprocessorService
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 25 more

解决办法:
以上是缺少hbase 的协处理器的相关包,加上下面的依赖,问题解决。

		<dependency>
			<groupId>com.aliyun.hbase</groupId>
			<artifactId>alihbase-endpoint</artifactId>
			<version>2.0.0</version>
		</dependency>

2.错误二:java.lang.NoSuchMethodError: org.geotools.factory.FactoryRegistry.getFactory(Ljava/lang/Class;Ljava/util/function/Predicate;Lorg/geotools/factory/Hints;Lorg/geotools/factory/Hints$Key;)Ljava/lang/Object;

如下:

Exception in thread "main" java.lang.NoSuchMethodError: org.geotools.factory.FactoryRegistry.getFactory(Ljava/lang/Class;Ljava/util/function/Predicate;Lorg/geotools/factory/Hints;Lorg/geotools/factory/Hints$Key;)Ljava/lang/Object;
	at org.geotools.factory.CommonFactoryFinder.lookup(CommonFactoryFinder.java:329)
	at org.geotools.factory.CommonFactoryFinder.getFilterFactory(CommonFactoryFinder.java:284)
	at org.geotools.factory.CommonFactoryFinder.getFilterFactory2(CommonFactoryFinder.java:370)
	at org.geotools.factory.CommonFactoryFinder.getFilterFactory2(CommonFactoryFinder.java:383)
	at org.geotools.data.DataUtilities.<clinit>(DataUtilities.java:204)
	at com.zgss.test.Test5.main(Test5.java:30)

解决办法:
jar包冲突,把gt-data的jar包去掉就好了。

错误三:java.util.NoSuchElementException: key not found: class org.locationtech.jts.geom.Point

Exception in thread "main" java.util.NoSuchElementException: key not found: class org.locationtech.jts.geom.Point
	at scala.collection.MapLike$class.default(MapLike.scala:228)
	at scala.collection.AbstractMap.default(Map.scala:59)
	at scala.collection.MapLike$class.apply(MapLike.scala:141)
	at scala.collection.AbstractMap.apply(Map.scala:59)
	at org.locationtech.geomesa.utils.geotools.AttributeSpec$class.getClassSpec(SimpleFeatureSpec.scala:85)
	at org.locationtech.geomesa.utils.geotools.AttributeSpec$GeomAttributeSpec.getClassSpec(SimpleFeatureSpec.scala:156)
	at org.locationtech.geomesa.utils.geotools.AttributeSpec$class.toSpec(SimpleFeatureSpec.scala:59)
	at org.locationtech.geomesa.utils.geotools.AttributeSpec$GeomAttributeSpec.toSpec(SimpleFeatureSpec.scala:160)
	at org.locationtech.geomesa.utils.geotools.SimpleFeatureTypes$.encodeDescriptor(SimpleFeatureTypes.scala:166)
	at org.locationtech.geomesa.utils.geotools.SimpleFeatureTypes$$anonfun$encodeType$1.apply(SimpleFeatureTypes.scala:162)
	at org.locationtech.geomesa.utils.geotools.SimpleFeatureTypes$$anonfun$encodeType$1.apply(SimpleFeatureTypes.scala:162)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
	at scala.collection.Iterator$class.foreach(Iterator.scala:742)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
	at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
	at scala.collection.AbstractTraversable.map(Traversable.scala:104)
	at org.locationtech.geomesa.utils.geotools.SimpleFeatureTypes$.encodeType(SimpleFeatureTypes.scala:162)
	at org.locationtech.geomesa.index.geotools.MetadataBackedDataStore.writeMetadata(MetadataBackedDataStore.scala:391)
	at org.locationtech.geomesa.index.geotools.MetadataBackedDataStore.createSchema(MetadataBackedDataStore.scala:141)
	at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.createSchema(GeoMesaDataStore.scala:178)
	at org.locationtech.geomesa.hbase.data.HBaseDataStore.createSchema(HBaseDataStore.scala:54)
	at org.locationtech.geomesa.hbase.data.HBaseDataStore.createSchema(HBaseDataStore.scala:29)
	at com.zgss.test.Test5.main(Test5.java:33)

解决办法:
我在代码里引入的包明明是com.vividsolutions.jts.geom.Point,可这里一直在找org.locationtech.jts.geom.Point,找了好久,最后把geotools的相关jar包全给删除,问题解决了,出现这种错误,一般都是jar包冲突,仔细找一定会找到。


本人用geomesa 操作hbase ,写代码有很多错误,网上资料也很少,这里先写几个,供后人参考,后面遇到其它错误了在添加吧。

猜你喜欢

转载自blog.csdn.net/weixin_36939535/article/details/82784776
今日推荐