我要疯了:
已安装Hadoop / Hbase,所有正在运行;
/opt/jdk1.6.0_24/bin/jps
23261 ThriftServer
22582 QuorumPeerMain
21969 NameNode
23500 Jps
23021 HRegionServer
22211 TaskTracker
22891 HMaster
22117 SecondaryNameNode
21779 DataNode
22370 Main
22704 JobTracker
伪分布式环境。
hbase shell
正在运行,并在运行“列表”时得出正确的结果;]]
hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 0.90.1-cdh3u0, r, Fri Mar 25 16:10:51 PDT 2011 hbase(main):001:0> status 1 servers, 0 dead, 8.0000 average load
通过红宝石和节俭连接时,一切正常。我们正在添加数据,它正在进入系统,我们可以查询/扫描它。一切似乎都很好。
但是,与Java连接时:
groovy> import org.apache.hadoop.hbase.HBaseConfiguration groovy> import org.apache.hadoop.hbase.client.HBaseAdmin groovy> conf = HBaseConfiguration.create() groovy> conf.set("hbase.master","127.0.0.1:60000"); groovy> hbase = new HBaseAdmin(conf); Exception thrown org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:1000) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294) at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156) at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:84)
我一直在寻找原因,但是我真的一点头绪都没有。一切似乎都已正确安装。
netstat -lnp|grep 60000 tcp6 0 0 :::60000 :::* LISTEN 22891/java
看起来也不错。
# telnet localhost 60000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
[如果键入任何内容,然后连接并死亡,然后输入Enter(不确定是不是这个主意,在9090上节俭也是如此)。
有人可以帮助我吗?
我要疯了:安装了Hadoop / Hbase,一切都在运行; /opt/jdk1.6.0_24/bin/jps 23261 ThriftServer 22582 QuorumPeerMain 21969 NameNode 23500 Jps 23021 HRegionServer 22211 TaskTracker ...
这是一个Zookeeper(ZK)错误。 HBase客户端尝试从Zookeeper获取/ hbase节点,但失败。
问题实际上是(出于某种原因……我并没有详细说明)防火墙阻止了与Zookeeper进行通信所需的端口之一;从命令行运行了,从我的应用程序运行了。但是,当我禁用防火墙时,所有设备突然都能正常工作。
当用户在客户端来源的hbase-site.xml中为“ zookeeper.znode.parent”定义了不正确的值时,或者在编写了自定义API的情况下,“ zookeeper.znode.parent”都不正确更新到错误的位置。例如,默认的“ zookeeper.znode.parent”设置为“ / hbase-unsecure”,但是如果您错误地指定说“ / hbase”(而不是我们在集群中设置的内容),则会遇到这种情况尝试连接到HBase群集时发生异常]
我在连接到我的hbase数据库时遇到了同样的问题。
步骤1:首先将使用“ jps”命令检查HBase主节点是否正在运行。