使用Java Client API连接到Cloudera VM上的Hbase:

时间:2013-11-12 02:49:58

标签: java sockets hbase

我使用以下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进行身份验证(未知错误)

如果有人能列出有助于我设置远程连接的步骤,那就太棒了。

1 个答案:

答案 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"));