我使用以下JAVA代码建立连接:
Configuration hConfig = null;
hConfig = HBaseConfiguration.create();
hConfig.set("hbase.zookeeper.quorum", **zookepperQuorum**);
hConfig.set("hbase.zookeeper.property.clientPort", **zookepperClientPort**);
HBaseAdmin.checkHBaseAvailable(hConfig);
这是我在Windows上的CmdLine的ipConfig:
以太网适配器本地连接:
链接本地IPv6地址。 。 。 。 。 :fe80 :: a03b:5ec2:cc82:f952%12
IPv4地址。 。 。 。 。 。 。 。 。 。 。 :10.108.0.87
子网掩码。 。 。 。 。 。 。 。 。 。 。 :255.255.254.0
默认网关。 。 。 。 。 。 。 。 。 :10.108.0.1
以太网适配器VirtualBox仅限主机网络:
特定于连接的DNS后缀。 :
链接本地IPv6地址。 。 。 。 。 :fe80 :: ecfb:969e:aa2e:1195%52
IPv4地址。 。 。 。 。 。 。 。 。 。 。 :192.168.56.1
子网掩码。 。 。 。 。 。 。 。 。 。 。 :255.255.255.0
默认网关。 。 。 。 。 。 。 。 。 :
这是cloudera VM中的主机文件:
127.0.0.1 localhost.localdomain localhost
我根据网上的建议尝试了不同的东西连接到Hbase,但那些对我不起作用。
我收到以下错误:
13/11/11 16:13:03 WARN zookeeper.ClientCnxn:服务器空的会话0x0,意外错误,关闭 套接字连接并尝试重新连接
java.net.ConnectException:拒绝连接:无更多信息
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
13/11/11 16:13:03 WARN zookeeper.RecoverableZooKeeper:可能是暂时的ZooKeeper异常:
org.apache.zookeeper.KeeperException $ ConnectionLossException:KeeperErrorCode = ConnectionLoss for
/ HBase的/ hbaseid
13/11/11 16:13:03 INFO util.RetryCounter:在重试#2之前睡觉4000毫秒......
13/11/11 16:13:04 INFO zookeeper.ClientCnxn:打开与服务器的套接字连接
的localhost.localdomain / 192.168.56.1:2181。不会尝试使用SASL进行身份验证(未知错误)
13/11/11 16:13:05 WARN zookeeper.ClientCnxn:服务器空的会话0x0,意外错误,关闭 套接字连接并尝试重新连接
java.net.ConnectException:拒绝连接:无更多信息
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
13/11/11 16:13:06 INFO zookeeper.ClientCnxn:打开与服务器localhost.localdomain / 192.168.56.1:2181的套接字连接。不会尝试使用SASL进行身份验证(未知错误)
如果有人能列出有助于我设置远程连接的步骤,那就太棒了。
答案 0 :(得分:0)
这个答案有点晚,但我希望其他人可以从中受益。
获取错误"会话0x0为服务器null"其中一个可能的问题是你的HBase代码不知道连接的位置。解决此问题的最佳方法是加载hbase-site.xml配置文件。
Configuration config = HBaseConfiguration.create();
config.addResource(new Path("/XXXX/hbase/hbase-0.98.9/conf/hbase-site.xml"));