Hi,
I am definitely getting closer to getting the newer GeoMesa working, but I am having problems querying the data.
Here are the dependencies from my POM file that I am using to go along with the QuickStart.java example from
http://geomesa.github.io/2014/05/28/geomesa-quickstart/. I should note, that we changed the version of GeoMesa to 1.0.0-2 on our cloud, so we could differentiate it from an older version
we were using.
<dependencies>
<dependency>
<groupId>geomesa</groupId>
<artifactId>geomesa-core</artifactId>
<version>1.0.0-2</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-core</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-start</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-cdh4.5.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0.1</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-data</artifactId>
<version>11.0</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>11.0</version>
</dependency>
</dependencies>
It appears to me that the data is ingested into GeoMesa/accumulo correctly. Here are the contents from scanning the table via the accumulo shell:
04~QuickStart~633~20140716 0d:Observation.2 [] \x00\x00\x00\x0DObservation.2\x00\x00\x00\x15\x00\x00\x00\x00\x01\xC0SN\xBE\xDF\xD5V\xF7\xC0B\xEF"I\xA2\xF0t\x00\x00\x01G>G\x1Ah
04~QuickStart~633~20140716 Observation.2:SimpleFeatureAttribute [] \x02\x1AObservation.2\x00\x0EClemens\x00\x04\x00\xD0\xE9\xB8\xE4\xE7Q\x00XPOINT (-77.23040004571872 -37.8682338758089)\x02
32~QuickStart~633~20140902 Observation.0:SimpleFeatureAttribute [] \x02\x1AObservation.0\x00\x0CAddams\x00\x00\x00\x80\xCC\xE7\xE8\x86R\x00ZPOINT (-76.0577293170671 -37.615979973322965)\x02
32~QuickStart~633~20140902 fj:Observation.0 [] \x00\x00\x00\x0DObservation.0\x00\x00\x00\x15\x00\x00\x00\x00\x01\xC0S\x03\xB1\xD6N4\xB6\xC0B\xCE\xD8n\x884\xE0\x00\x00\x01H6\x8C\xF3\x00
54~QuickStart~630~20140417 Observation.1:SimpleFeatureAttribute [] \x02\x1AObservation.1\x00\x0CBierce\x00\x02\x00\xE0\x9E\xD7\xF2\xADQ\x00ZPOINT (-77.48469253216224 -38.87427143505418)\x02
54~QuickStart~630~20140417 fu:Observation.1 [] \x00\x00\x00\x0DObservation.1\x00\x00\x00\x15\x00\x00\x00\x00\x01\xC0S_\x053\xD3\x90%\xC0Co\xE8 Z\xB1>\x00\x00\x01Eo*\xE7\xB0
~METADATA_QuickStart attributes: [] Who:String,What:java.lang.Long,When:Date,Where:Point:srid=4326,Why:String
~METADATA_QuickStart bounds: [] -77.48469253216224:-76.0577293170671:-38.87427143505418:-37.615979973322965
~METADATA_QuickStart dtgfield: [] When
~METADATA_QuickStart featureEncoding: [] avro
~METADATA_QuickStart schema: [] %~#s%99#r%QuickStart#cstr%0,3#gh%yyyyMMdd#d::%~#s%3,2#gh::%~#s%#id
When I perform a query, I get no results. When I go to the tablet server log files, I see the following warnings and errors. Doing some online research seems to indicate that this is an HSQL version compatibility problem – perhaps between
GeoTools and Hadoop. Has anyone encountered this problem? Does anyone have any suggestions?
Thanks,
Beau
2014-06-13 12:35:54,839 [tabletserver.TabletServer] WARN : exception while doing multi-scan
java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
at org.geotools.referencing.factory.epsg.DirectEpsgFactory.getConnection(DirectEpsgFactory.java:3196)
at org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:436)
at org.geotools.referencing.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:133)
at org.geotools.referencing.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:235)
at org.geotools.referencing.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:119)
at org.geotools.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:667)
at org.geotools.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:501)
at org.geotools.factory.FactoryRegistry$1.filter(FactoryRegistry.java:192)
at javax.imageio.spi.FilterIterator.advance(ServiceRegistry.java:810)
at javax.imageio.spi.FilterIterator.<init>(ServiceRegistry.java:804)
at javax.imageio.spi.ServiceRegistry.getServiceProviders(ServiceRegistry.java:508)
at org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:197)
at org.geotools.referencing.ReferencingFactoryFinder.getFactories(ReferencingFactoryFinder.java:180)
at org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactories(ReferencingFactoryFinder.java:455)
at org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:88)
at org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:69)
at org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:257)
at org.geotools.referencing.CRS.decode(CRS.java:514)
at org.geotools.referencing.CRS.decode(CRS.java:442)
at org.geotools.data.DataUtilities.createAttribute(DataUtilities.java:2646)
at org.geotools.data.DataUtilities.createType(DataUtilities.java:1928)
at org.geotools.data.DataUtilities.createType(DataUtilities.java:1901)
at geomesa.core.iterators.SpatioTemporalIntersectingIterator.init(SpatioTemporalIntersectingIterator.scala:89)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:243)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:213)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:191)
at org.apache.accumulo.server.tabletserver.Tablet$ScanDataSource.createIterator(Tablet.java:2084)
at org.apache.accumulo.server.tabletserver.Tablet$ScanDataSource.iterator(Tablet.java:2022)
at org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:163)
at org.apache.accumulo.server.tabletserver.Tablet.lookup(Tablet.java:1600)
at org.apache.accumulo.server.tabletserver.Tablet.lookup(Tablet.java:1705)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:1036)
at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
at java.lang.Thread.run(Thread.java:744)
2014-06-13 12:35:54,839 [tabletserver.TabletServer] WARN : Failed to get multiscan result
java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.apache.accumulo.server.tabletserver.TabletServer$ScanTask.get(TabletServer.java:698)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.continueMultiScan(TabletServer.java:1345)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.startMultiScan(TabletServer.java:1310)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.accumulo.trace.instrument.thrift.TraceWrap$1.invoke(TraceWrap.java:63)
at com.sun.proxy.$Proxy10.startMultiScan(Unknown Source)
at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.getResult(TabletClientService.java:1985)
at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.getResult(TabletClientService.java:1969)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:156)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:478)
at org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
at org.geotools.referencing.factory.epsg.DirectEpsgFactory.getConnection(DirectEpsgFactory.java:3196)
at org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:436)
at org.geotools.referencing.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:133)
at org.geotools.referencing.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:235)
at org.geotools.referencing.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:119)
at org.geotools.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:667)
at org.geotools.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:501)
at org.geotools.factory.FactoryRegistry$1.filter(FactoryRegistry.java:192)
at javax.imageio.spi.FilterIterator.advance(ServiceRegistry.java:810)
at javax.imageio.spi.FilterIterator.<init>(ServiceRegistry.java:804)
at javax.imageio.spi.ServiceRegistry.getServiceProviders(ServiceRegistry.java:508)
at org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:197)
at org.geotools.referencing.ReferencingFactoryFinder.getFactories(ReferencingFactoryFinder.java:180)
at org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactories(ReferencingFactoryFinder.java:455)
at org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:88)
at org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:69)
at org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:257)
at org.geotools.referencing.CRS.decode(CRS.java:514)
at org.geotools.referencing.CRS.decode(CRS.java:442)
at org.geotools.data.DataUtilities.createAttribute(DataUtilities.java:2646)
at org.geotools.data.DataUtilities.createType(DataUtilities.java:1928)
at org.geotools.data.DataUtilities.createType(DataUtilities.java:1901)
at geomesa.core.iterators.SpatioTemporalIntersectingIterator.init(SpatioTemporalIntersectingIterator.scala:89)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:243)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:213)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:191)
at org.apache.accumulo.server.tabletserver.Tablet$ScanDataSource.createIterator(Tablet.java:2084)
at org.apache.accumulo.server.tabletserver.Tablet$ScanDataSource.iterator(Tablet.java:2022)
at org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:163)
at org.apache.accumulo.server.tabletserver.Tablet.lookup(Tablet.java:1600)
at org.apache.accumulo.server.tabletserver.Tablet.lookup(Tablet.java:1705)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:1036)
at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
... 5 more
2014-06-13 12:35:54,840 [thrift.ProcessFunction] ERROR: Internal error processing startMultiScan
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.continueMultiScan(TabletServer.java:1358)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.startMultiScan(TabletServer.java:1310)
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.accumulo.trace.instrument.thrift.TraceWrap$1.invoke(TraceWrap.java:63)
at com.sun.proxy.$Proxy10.startMultiScan(Unknown Source)
at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.getResult(TabletClientService.java:1985)
at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor$startMultiScan.getResult(TabletClientService.java:1969)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:156)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:478)
at org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.apache.accumulo.server.tabletserver.TabletServer$ScanTask.get(TabletServer.java:698)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.continueMultiScan(TabletServer.java:1345)
... 18 more
Caused by: java.lang.NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String;ZZ)Lorg/hsqldb/persist/HsqlProperties;
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
at org.geotools.referencing.factory.epsg.DirectEpsgFactory.getConnection(DirectEpsgFactory.java:3196)
at org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:436)
at org.geotools.referencing.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:133)
at org.geotools.referencing.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:235)
at org.geotools.referencing.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:119)
at org.geotools.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:667)
at org.geotools.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:501)
at org.geotools.factory.FactoryRegistry$1.filter(FactoryRegistry.java:192)
at javax.imageio.spi.FilterIterator.advance(ServiceRegistry.java:810)
at javax.imageio.spi.FilterIterator.<init>(ServiceRegistry.java:804)
at javax.imageio.spi.ServiceRegistry.getServiceProviders(ServiceRegistry.java:508)
at org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:197)
at org.geotools.referencing.ReferencingFactoryFinder.getFactories(ReferencingFactoryFinder.java:180)
at org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactories(ReferencingFactoryFinder.java:455)
at org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:88)
at org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:69)
at org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:257)
at org.geotools.referencing.CRS.decode(CRS.java:514)
at org.geotools.referencing.CRS.decode(CRS.java:442)
at org.geotools.data.DataUtilities.createAttribute(DataUtilities.java:2646)
at org.geotools.data.DataUtilities.createType(DataUtilities.java:1928)
at org.geotools.data.DataUtilities.createType(DataUtilities.java:1901)
at geomesa.core.iterators.SpatioTemporalIntersectingIterator.init(SpatioTemporalIntersectingIterator.scala:89)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:243)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:213)
at org.apache.accumulo.core.iterators.IteratorUtil.loadIterators(IteratorUtil.java:191)
at org.apache.accumulo.server.tabletserver.Tablet$ScanDataSource.createIterator(Tablet.java:2084)
at org.apache.accumulo.server.tabletserver.Tablet$ScanDataSource.iterator(Tablet.java:2022)
at org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:163)
at org.apache.accumulo.server.tabletserver.Tablet.lookup(Tablet.java:1600)
at org.apache.accumulo.server.tabletserver.Tablet.lookup(Tablet.java:1705)
at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:1036)
at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
... 5 more
…
From: Beau Lalonde
Sent: Thursday, June 12, 2014 1:36 PM
To: GeoMesa Users Mailing List (geomesa-users@xxxxxxxxxxxxxxxx)
Subject: RE: What are the GeoMesa installation requirements and what are recommendations?
John, Connor,
Thanks for your suggestions. For the time being we have upgraded our cloud to use Accumulo 1.5.0 and Cloudera CDH 4.5. CDH 4.5 uses Hadoop 2.0.0. I am definitely getting further along, but I am not all of the way there. I will post
more questions if I cannot figure it out.
Thanks again,
Beau