0

我正在使用以下 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 Host-Only 网络:

连接特定的 DNS 后缀。:

链接本地 IPv6 地址 。. . . . : fe80::ecfb:969e:aa2e:1195%52

IPv4 地址。. . . . . . . . . . : 192.168.56.1

子网掩码 。. . . . . . . . . . : 255.255.255.0

默认网关 。. . . . . . . . :

这是我在 cloudera VM 中的Hosts 文件:

127.0.0.1 localhost.localdomain 本地主机

我根据网上的建议尝试了不同的方法来连接到 Hbase,但这些对我不起作用。

我收到以下错误:

13/11/11 16:13:03 WARN zookeeper.ClientCnxn: Session 0x0 for server null,意外错误,关闭套接字连接并尝试重新连接

java.net.ConnectException:连接被拒绝:没有更多信息

在 sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

在 sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735)

在 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

2011 年 13 月 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 进行身份验证(未知错误)

2011 年 13 月 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 进行身份验证(未知错误)

如果有人能列出有助于我建立远程连接的步骤,那就太好了。

4

1 回答 1

0

这个答案有点晚了,但我希望其他人可以从中受益。

当收到错误“Session 0x0 for server null”时,可能的问题之一是您的 HBase 代码不知道在哪里连接。解决此问题的最佳方法是加载您的 hbase-site.xml 配置文件。

Configuration config = HBaseConfiguration.create();
config.addResource(new Path("/XXXX/hbase/hbase-0.98.9/conf/hbase-site.xml"));
于 2015-07-30T04:41:36.263 回答