To stress what JD just said, the HBase book/Ref Guide (i.e., the online book that is a part of HBase) is open source and the best source of the material (especially the Troubleshooting chapter) is user experience.
Minor clarification: "HBase the Definitive Guide" is a great book by O'Reilly, but not open source. On 2/14/12 1:43 PM, "Jean-Daniel Cryans" <jdcry...@apache.org> wrote: >And what would be missing? It's all open source so this is the moment >where you can forever leave a trace in HBase :) > >J-D > >On Tue, Feb 14, 2012 at 12:35 AM, Bing Li <lbl...@gmail.com> wrote: >> Dear Jean-Daniel, >> >> The issue is solved. I think the book in the HBase the Definitive Guide >> does not give sufficient descriptions about the pseudo-distributed mode. >> >> Thanks so much! >> Bing >> >> On Tue, Feb 14, 2012 at 7:27 AM, Jean-Daniel Cryans >><jdcry...@apache.org>wrote: >> >>> Is zookeeper running properly? Is it where your shell expects it to >>> be? Can you access HBase's web ui on port 60010? >>> >>> J-D >>> >>> On Sun, Feb 12, 2012 at 1:00 PM, Bing Li <lbl...@gmail.com> wrote: >>> > Dear all, >>> > >>> > I am a new learner of HBase. I tried to set up my HBase on a >>> > pseudo-distributed HDFS. >>> > >>> > After starting HDFS by running ./start-dfs.sh and ./start-hbase.sh, I >>> > started the HBase shell. >>> > >>> > ./hbase shell >>> > >>> > It was started properly. However, when I typed the command, status, >>>as >>> > follows. >>> > >>> > hbase(main):001:0> status >>> > >>> > It got the following exception. Since I had very limited experiences >>>to >>> use >>> > HBase, I could not figure out what the problem was. >>> > >>> > SLF4J: Class path contains multiple SLF4J bindings. >>> > SLF4J: Found binding in >>> > >>> >>>[jar:file:/opt/hbase-0.92.0/lib/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/ >>>StaticLoggerBinder.class] >>> > SLF4J: Found binding in >>> > >>> >>>[jar:file:/opt/hadoop-1.0.0/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/ >>>StaticLoggerBinder.class] >>> > SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an >>> > explanation. >>> > 12/02/13 04:34:01 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper >>>exists >>> > failed after 3 retries >>> > 12/02/13 04:34:01 WARN zookeeper.ZKUtil: hconnection Unable to set >>> watcher >>> > on znode /hbase/master >>> > org.apache.zookeeper.KeeperException$ConnectionLossException: >>> > KeeperErrorCode = ConnectionLoss for /hbase/master >>> > at >>> > org.apache.zookeeper.KeeperException.create(KeeperException.java:99) >>> > at >>> > org.apache.zookeeper.KeeperException.create(KeeperException.java:51) >>> > at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1003) >>> > at >>> > >>> >>>org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(Recoverabl >>>eZooKeeper.java:154) >>> > at >>> > >>> >>>org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java >>>:226) >>> > at >>> > >>> >>>org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNo >>>deTracker.java:76) >>> > at >>> > >>> >>>org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementat >>>ion.setupZookeeperTrackers(HConnectionManager.java:580) >>> > at >>> > >>> >>>org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementat >>>ion.<init>(HConnectionManager.java:569) >>> > at >>> > >>> >>>org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnect >>>ionManager.java:186) >>> > at >>> > org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:98) >>> > at >>>sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> > Method) >>> > at >>> > >>> >>>sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA >>>ccessorImpl.java:39) >>> > at >>> > >>> >>>sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons >>>tructorAccessorImpl.java:27) >>> > at >>>java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>> > at >>> > >>> >>>org.jruby.javasupport.JavaConstructor.newInstanceDirect(JavaConstructor. >>>java:275) >>> > at >>> > >>> >>>org.jruby.java.invokers.ConstructorInvoker.call(ConstructorInvoker.java: >>>91) >>> > at >>> > >>> >>>org.jruby.java.invokers.ConstructorInvoker.call(ConstructorInvoker.java: >>>178) >>> > at >>> > >>> >>>org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite. >>>java:322) >>> > at >>> > >>> >>>org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.jav >>>a:178) >>> > at >>> > >>>org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182 >>>) >>> > at >>> > >>> >>>org.jruby.java.proxies.ConcreteJavaProxy$2.call(ConcreteJavaProxy.java:4 >>>7) >>> > at >>> > >>> >>>org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite. >>>java:322) >>> > >>> > Could you please give me a hand? Thanks so much! >>> > >>> > Best regards, >>> > Bing >>> >