Is zookeeper jar on your CLASSPATH? [exec] java.lang.NoClassDefFoundError: org/apache/zookeeper/Watcher
You code looks fine. St.Ack On Wed, Jan 20, 2010 at 12:12 PM, Chris Bates < christopher.andrew.ba...@gmail.com> wrote: > Hi, > > We're building an analytics server with HBase using Jetty. I have > experimented with the Thrift API + PHP over the past few days and got it > working, but needed the filter functionality which has not been released > yet. So I decided to switch to the Java API and run it with a Jetty > server. > > My Jetty server is setup on crunch2.in.escapemg.com:8888. > > Hbase is setup on the same machine, with all the configuration settings > according to the "Getting Started" guide. We are using Hbase version > 0.20.1. > > Just doing a quick scanning test with this code: > > HBaseConfiguration config = new HBaseConfiguration(); > HTable table = new HTable(config, "Guts"); > Scan s = new Scan(); > s.addColumn(Bytes.toBytes("user:"),Bytes.toBytes("theme")); > ResultScanner scanner = table.getScanner(s); > int count = 0; > int limit = 10; > try { > for (Result rr = scanner.next(); rr != null; rr = > scanner.next()) { > if (count <= limit) { > response.getOutputStream().write( rr.getRow() ); > count++; > } > } > } finally { > scanner.close(); > } > > > I get this error, which states (I think) that the HBase is throwing a > connection error: > > [exec] 14:56:14,197 DEBUG [24109...@qtp-15206466-0,Configuration] > java.io.IOException: config() > [exec] at > org.apache.hadoop.conf.Configuration.<init>(Configuration.java:210) > [exec] at > org.apache.hadoop.conf.Configuration.<init>(Configuration.java:197) > [exec] at > > org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:33) > [exec] at com.grooveshark.HBaseHandler.handle(HBaseHandler.java:25) > [exec] at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > [exec] at org.mortbay.jetty.Server.handle(Server.java:326) > [exec] at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > [exec] at > > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:913) > [exec] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) > [exec] at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > [exec] at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > [exec] at > > org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) > [exec] at > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > [exec] > [exec] 2010-01-20 14:56:14.697::WARN: / > [exec] java.lang.NoClassDefFoundError: org/apache/zookeeper/Watcher > [exec] at java.lang.ClassLoader.defineClass1(Native Method) > [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:621) > [exec] at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) > [exec] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) > [exec] at java.net.URLClassLoader.access$000(URLClassLoader.java:56) > [exec] at java.net.URLClassLoader$1.run(URLClassLoader.java:195) > [exec] at java.security.AccessController.doPrivileged(Native Method) > [exec] at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > [exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > [exec] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) > [exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > [exec] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager.getClientZooKeeperWatcher(HConnectionManager.java:151) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.getZooKeeperWrapper(HConnectionManager.java:885) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRootRegion(HConnectionManager.java:901) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:580) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:556) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:630) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:589) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:556) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:630) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:593) > [exec] at > > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:556) > [exec] at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:127) > [exec] at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:105) > [exec] at com.grooveshark.HBaseHandler.handle(HBaseHandler.java:27) > [exec] at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > [exec] at org.mortbay.jetty.Server.handle(Server.java:326) > [exec] at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > [exec] at > > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:913) > [exec] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) > [exec] at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > [exec] at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > [exec] at > > org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) > [exec] at > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > [exec] Caused by: java.lang.ClassNotFoundException: > org.apache.zookeeper.Watcher > [exec] at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > [exec] at java.security.AccessController.doPrivileged(Native Method) > [exec] at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > [exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > [exec] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) > [exec] at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > [exec] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > [exec] ... 35 more > > > After doing a mailing list search, it seemed that other configuration > problems were fixed by upgrading to 0.20.2 which I have not yet done. Is > this the problem or is there something simple I am overlooking? I have > also > added my hbase-site.xml and hbase-default.xml to my lib and conf > directories > to my working classpath. > > I am confused because I was able to connect via thrift, and I also have a > BulkImporter MapReduce script to load the logging data into HBase that > works > fine, but have been unable to locate my error in this case. >