Cha*_*esS 11 ruby java hadoop hbase thrift
我疯了:
已安装的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
Run Code Online (Sandbox Code Playgroud)
伪分布式环境.
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
Run Code Online (Sandbox Code Playgroud)
当通过红宝石和节俭连接时,一切正常; 我们正在添加数据,它正在进入系统,我们可以查询/扫描它.一切似乎都很好.
但是,在与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)
Run Code Online (Sandbox Code Playgroud)
我一直试图找到原因,但我根本没有任何线索.一切似乎都正确安装.
netstat -lnp|grep 60000
tcp6 0 0 :::60000 :::* LISTEN 22891/java
Run Code Online (Sandbox Code Playgroud)
看起来也不错.
# telnet localhost 60000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)
如果你输入任何东西+输入就连接并死掉(不确定这是不是这个想法,9090上的节俭也是如此).
谁能帮我?
这是Zookeeper(ZK)错误.HBase客户端尝试从Zookeeper获取/ hbase节点并失败.
您可以从HBase主Web界面获取ZK转储.您应该看到与ZK的所有连接,并确定是否有些事情正在耗尽它们.
在深入研究其他任何事情之前,您可以尝试重新启动ZK群集并查看它是否能解决您的问题.(你看到单个客户端的情况很奇怪).
HBase具有增加与ZK的连接数的设置.它的
hbase.zookeeper.property.maxClientCnxns
Run Code Online (Sandbox Code Playgroud)
最近有一些更新(见下文)与默认连接数相关(有一个hbase-default.xml文件,它具有所有默认配置).您可以在hbase-site.xml文件中(在HBase conf dir下)覆盖它并将其提高到100或更多.但请确保您没有以这种方式掩盖真正的问题,您不应该在单个客户端上看到这个问题.
我们遇到了类似的情况,但是在升级到HBase-0.90之后,在地图缩减工作的繁重操作期间发生了这种情况.
以下是与您的问题相关的几个问题:
如果您仍然无法弄明白,请发送电子邮件至hbase-users列表或加入freenode上的#hbase频道并提出实时问题.