HBase独立无法连接(无法创建表)

Hyp*_*nos 20 java hadoop hbase nosql apache-zookeeper

我试图在本文之后以独立模式部署Hbase:http://hbase.apache.org/book.html#quickstart .版本是0.92.1-cdh4.1.2

但是在尝试创建表时我遇到了这些错误:

错误信息:

    13/04/01 14:07:10 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/04/01 14:07:10 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:1021)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:82)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:569)
Run Code Online (Sandbox Code Playgroud)

输出日志:

13/04/01 14:06:39 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/04/01 14:06:39 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 10231@localhost
13/04/01 14:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
13/04/01 14:06:39 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
13/04/01 14:06:39 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
Run Code Online (Sandbox Code Playgroud)

我的配置:

  1. 在hbase-env.sh中添加了JAVA_HOME
  2. hbase_site.xml

    <name>hbase.rootdir</name>
    
    <value>file:///home/hadoop/data</value>
    
    Run Code Online (Sandbox Code Playgroud)

    <name>hbase.zookeeper.property.dataDir</name>
    
    <value>file:///home/hadoop/zookeeper</value>
    
    Run Code Online (Sandbox Code Playgroud)

我试图修改/ etc/hosts,看起来像这样(oracle是主机名):

127.0.0.1   localhost oracle
Run Code Online (Sandbox Code Playgroud)

要么

[server ip]   localhost oracle
Run Code Online (Sandbox Code Playgroud)

但这些对我不起作用.

我的确切代码是:

[usr@oracle bin]$ ./start-hbase.sh 
starting master, logging to /home/hadoop/hbase-0.94.6/bin/../logs/hbase-usr-master-oracle.out
[usr@oracle bin]$ hbase shell
13/04/01 14:57:55 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.92.1-cdh4.1.2, rUnknown, Thu Nov  1 18:02:07 PDT 2012

hbase(main):001:0> create 'test','cf'
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Rom*_*nko 7

hbase.zookeeper.quorum您的配置似乎缺少.请查看这个HBase指南章节,它可能有所帮助:http://hbase.apache.org/book/zookeeper.html

另外请检查zookeeper是否在正确的端口上启动(更常见的是)正确的IP接口.

  • 使用独立的hbase我得到了相同的错误,因此hbase根据需要启动zookeeper.创建表时,hbase无法启动zookeeper,因为它表示"3次重试后ZooKeeper存在失败".这似乎说hbase认为zookeeper存在,但连接失败.我看看jps -l并且看不到动物园管理员,为什么它认为它存在? (2认同)