使用Java客户端API连接到Cloudera VM上的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警告zookeeper.ClientCnxn:服务器null的会话0x0,意外错误,关闭套接字连接并尝试重新连接

java.net.ConnectException:连接被拒绝:没有进一步的信息

在sun.nio.ch.SocketChannelImpl.checkConnect(本地方法)

在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

13/11/11 16:13:03 INFO util.RetryCounter:在重试#2之前睡4000毫秒...

13/11/11 16:13:04信息zookeeper.ClientCnxn:打开套接字连接到服务器

的localhost.localdomain / 192.168.56.1:2181。 不会尝试使用SASL进行身份验证(未知错误)

13/11/11 16:13:05警告zookeeper.ClientCnxn:服务器null的会话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信息zookeeper.ClientCnxn:打开套接字连接到服务器localhost.localdomain / 192.168.56.1:2181。 不会尝试使用SASL进行身份验证(未知错误)

如果有人能列出能够帮助我设置远程连接的步骤,那将会很棒。


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

当得到错误“服务器null的会话0x0”时,可能的问题之一是你的HBase代码不知道在哪里连接。 解决这个问题的最佳方法是加载你的hbase-site.xml配置文件。

Configuration config = HBaseConfiguration.create();
config.addResource(new Path("/XXXX/hbase/hbase-0.98.9/conf/hbase-site.xml"));
链接地址: http://www.djcxy.com/p/65797.html

上一篇: Connect to Hbase on Cloudera VM using the Java Client API :

下一篇: Java ip address proxy