HBase的异常(一)

来源:互联网 发布:js的数组简便去重 编辑:程序博客网 时间:2024/05/22 09:06
hbase(main):001:0> listTABLE                                                                                              2017-06-13 18:30:31,489 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts2017-06-13 18:30:31,490 WARN  [main] zookeeper.ZKUtil: hconnection-0x7a23e24, quorum=bruce:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseidat 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:1041)at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:220)at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:481)at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:83)at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.retrieveClusterId(HConnectionManager.java:839)at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:642)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:526)at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:411)at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:390)at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:271)at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:195)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:526)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.java:178)at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182)at org.jruby.java.proxies.ConcreteJavaProxy$2.call(ConcreteJavaProxy.java:48)at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:322)at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:178)at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182)at org.jruby.RubyClass.newInstance(RubyClass.java:829)at org.jruby.RubyClass$i$newInstance.call(RubyClass$i$newInstance.gen:65535)at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:266)at org.jruby.java.proxies.ConcreteJavaProxy$3.call(ConcreteJavaProxy.java:144)at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)at org.jruby.ast.InstAsgnNode.interpret(InstAsgnNode.java:95)at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:255)at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:223)


报错:ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts
2017-06-13 18:30:31,490 WARN  [main] zookeeper.ZKUtil: hconnection-0x7a23e24, quorum=bruce:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

分析:我们知道HBase的启动会启动两个进程,分别是master和regionserver,一方面master需要zookeeper保证其唯一工作状态,另外一方面,HBase的元数据都是存储在zookeeper中的,所以在启用HBase前需要启动zookeeper;

解决:

1、这个时候可以通过命令:$jps    查看是否启动zookeeper,进程名为:QuorumPeerMain

2、也可以通过命令:$ ps -ef | grep QuorumPeerMain  查看zookeeper进程是否存在。


扩展:之前也有遇到,zookeeper也启动了,hbase的命令操作不报错,但就是不出结果。

我们常用的DDL操作都是由master执行的,这时需要去检查下 hbase的进程是否都正常启动。