Chris,
BTW, in case I didn’t mention it, I’m running GeoServer under Jetty not Tomcat.
I found no duplicates of slf4j-api-*.jar in the WEB-INF/lib container although there is slf4j-simple-1.0.1.jar in $GEOSERVER_HOME/lib.
I upgraded to commons-logging-1.1.3.jar (taken from Hadoop’s Tomcat WEB-INF/lib).
Still no joy…
Thanks for your patience on this…
Bob
From: geomesa-users-bounces@xxxxxxxxxxxxxxxx [mailto:geomesa-users-bounces@xxxxxxxxxxxxxxxx]
On Behalf Of Chris Snider
Sent: Thursday, May 22, 2014 10:24 AM
To: Geomesa User discussions; hunter@xxxxxxxx
Subject: Re: [geomesa-users] Configuring GeoServer for GeoMesa
Bob,
You can check for slf4j-api-*.jar in your container lib. My Tomcat instance has slf4j-api-1.6.1.jar in <tomcat>\lib folder that I removed.
Also, I have these in my <GeoServer>\WEB-INF\lib
commons-logging-1.1.3.jar
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
and \WEB-INF\classes I have the attached logging.properties (helps me in debugging)
Check for these.
Chris Snider
Senior Software Engineer
Intelligent Software Solutions, Inc.
Chris,
It didn’t look like I had duplicate copies of any jars. Here are all the “slf4j” and “log4j” jar files in the GeoServer WEB-INF/lib:
-rw-r--r--. 1 barnhartr barnhartr 367444 Sep 12 2013 log4j-1.2.14.jar
-rw-r--r--. 1 barnhartr barnhartr 23445 Sep 16 2013 slf4j-api-1.5.8.jar
-rw-r--r--. 1 barnhartr barnhartr 8620 Sep 16 2013 slf4j-log4j12-1.4.2.jar
I tried replacing these with the newer versions from Hadoop 2.4.0’s tomcat WEB-INF/lib (no impact):
-rw-r--r--. 1 barnhartr barnhartr 489884 May 22 09:09 log4j-1.2.17.jar
-rw-r--r--. 1 barnhartr barnhartr 26084 May 22 09:20 slf4j-api-1.7.5.jar
-rw-r--r--. 1 barnhartr barnhartr 8869 May 22 09:20 slf4j-log4j12-1.7.5.jar
I then replaced $GEOSERVER_HOME/lib/log4j-1.2.14.jar with its 1.2.17 version, also with no impact.
Bob
Bob,
You are getting this error “java.lang.NoSuchMethodError: org.slf4j.Logger.isTraceEnabled()Z” which means you have at least 2 copies
of the slf4j logger jar deployed for geomesa. GeoServer comes with a log4j-1.2.14 and GeoMesa requires log4j-1.2.17 I believe (at least that is what I deploy with some of my other GeoServer extensions/apps we write).
Check your GeoServer folder WEB-INF/lib for log4j-X.X.X.jar and rename all of them except the one with the highest number. Restart your container (Tomcat, JBoss, etc) and try adding the GeoMesa store again.
Chris Snider
Senior Software Engineer
Intelligent Software Solutions, Inc.
Direct (719) 452-7257
I think I’ve gotten past the “missing .jar file” issues, adding the following .jars:
accumulo-core.jar
accumulo-fate.jar (I002)
commons-configuration-1.6.jar (I002)
commons-lang-2.6.jar (I002)
hadoop-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
libthrift-0.9.0.jar
zookeeper-3.4.2.jar
I am continuing with the instruction at
http://geomesa.github.io/2014/04/17/geomesa-gdelt-analysis/.
I brought up GeoServer and added a new workspace (name:geomesa,url:www.geomesa.org). That went fine.
Then I tried to register the GeoMesa data store with GeoServer, defining the “geomesa:gdelt” data store as shown in the tutorial. I used all the same connection parameters I used to ingest the GDELT 20140507
data.
However, when I hit “Save” I got the following error on the web-page:
Error creating data store, check the parameters. Error message: Failed to connect to zookeeper (localhost:2181) within 2x zookeeper timeout period 30000
The GeoServer standard-error output a large number of the following errors (presumably one for each failed attempt to connect to ZooKeeper):
272858 [btpool0-7-SendThread(localhost:2181)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established to localhost/127.0.0.1:2181, initiating session
272862 [btpool0-7-SendThread(localhost:2181)] WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for server localhost/127.0.0.1:2181, unexpected error, closing socket connection and attempting reconnect
java.lang.NoSuchMethodError: org.slf4j.Logger.isTraceEnabled()Z
at org.apache.zookeeper.ClientCnxnSocket.readConnectResult(ClientCnxnSocket.java:118)
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:81)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
274761 [btpool0-7-SendThread(localhost:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL
(unknown error)
However, as far as I can tell, ZooKeeper is running fine and responded to commands such as “echo ruok | nc 127.0.0.1 5111”.
Any ideas what might be going wrong here?
Thanks,
Bob,
I think you will need:
accumulo-core.jar
hadoop-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
libthrift-0.9.0.jar
zookeeper-3.4.2.jar
You do not need the geomesa-dist in your geoserver/WEB-INF/lib
We are planning to update the documentation with our next release, thanks for bearing with us in the meantime.
Hunter
On 05/21/2014 02:00 PM, Barnhart, Bob M. wrote:
I am trying to configure GeoServer to work with GeoMesa as described in
http://geomesa.github.io/2014/04/17/geomesa-gdelt-analysis/.
I installed GeoServer and copied the following jar files to $GEOMESA_HOME/webapps/geoserver/WEB-INF/lib:
-rw-rw-r--. 1 barnhartr barnhartr 145182720 May 9 10:13 geomesa-dist-1.0.0-SNAPSHOT-distribution.tar
-rw-rw-r--. 1 barnhartr barnhartr 18352705 May 21 09:52 geomesa-plugin-1.0.0-SNAPSHOT-geoserver-plugin.jar
-rw-r--r--. 1 barnhartr barnhartr 3736955 May 21 10:24 accumulo-core.jar
drwxr-xr-x. 2 barnhartr barnhartr 12288 May 21 10:27 .
-rw-rw-r--. 1 barnhartr barnhartr 1340305 May 21 10:27 zookeeper-3.4.6.jar
However, when I start GeoServer, I’m getting the following exception:
INFO org.mortbay.log - Logging to
org.slf4j.impl.SimpleLogger@4019eb89 via org.mortbay.log.Slf4jLog
367 [main] WARN org.mortbay.log - Deprecated configuration used for /usr/local/geoserver-2.5/webapps
417 [main] INFO org.mortbay.log - jetty-6.1.8
log4j:WARN File option not set for appender [geoserverlogfile].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?
3659 [main] INFO /geoserver - Initializing Spring root WebApplicationContext
May 21, 2014 10:29:49 AM org.geoserver.platform.GeoServerExtensions checkContext
WARNING: Extension lookup occured, but ApplicationContext is unset.
May 21, 2014 10:29:52 AM org.geotools.factory.FactoryRegistry scanForPlugins
WARNING: Can't load a service for category "DataStoreFactorySpi". Cause is "ServiceConfigurationError: org.geotools.data.DataStoreFactorySpi: Provider geomesa.core.data.AccumuloDataStoreFactory could not be instantiated".
java.util.ServiceConfigurationError: org.geotools.data.DataStoreFactorySpi: Provider geomesa.core.data.AccumuloDataStoreFactory could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:224)
at java.util.ServiceLoader.access$100(ServiceLoader.java:181)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377)
. . .
The tutorial says that “Your local Accumulo and Zookeepers JARs also need to be available within your GeoServer’s lib directory.”.
The GeoMesa “Getting Started” document also says:
Note that you will also need other JAR files, particularly those pertaining to: accumulo-core; hadoop-core; zookeeper; libthrift; and cloudtrace. These are support services that are referenced by GeoMesa, yet are part of your base infrastructure.
Which other .jar files are required for GeoServer+GeoMesa and where must they be installed?
Thanks,
Bob Barnhart
Chief Systems Engineer | 858 826 5596 (Office) | 619 972 9489 (Mobile) |
Robert.M.Barnhart@xxxxxxxxxx
_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
http://www.locationtech.org/mailman/listinfo/geomesa-users