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.
>

Reply via email to