无法从java程序连接到远程hbase

时间:2013-11-15 06:26:22

标签: java hbase apache-zookeeper

您好我正在尝试从我的java程序连接到远程机器中的hbase。但我得到连接拒绝错误。在查看错误时,我认为它正在尝试连接到我的localhost而不是远程计算机。

我的配置就像 -

 HBaseConfiguration conf = new HBaseConfiguration();
    conf.set("hbase.master", "10.219.47.22:60010");
    conf.set("hbase.zookeeper.quorum.", "10.219.47.22:60010");
    conf.set("hbase.zookeeper.property.clientPort", "2181");

我收到以下错误

13/11/15 17:35:08 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused: no further information
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
13/11/15 17:35:08 INFO zookeeper.ClientCnxn: Opening socket connection to server 127.0.0.1/127.0.0.1:2180. Will not attempt to authenticate using SASL (unknown error)
13/11/15 17:35:08 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
13/11/15 17:35:08 INFO util.RetryCounter: The 1 times to retry  after sleeping 2000 ms

同样在远程计算机上运行lsof以检查我的端口2181是否已打开。我得到了以下结果 -

java      18854         root  266u  IPv6 6199707      0t0  TCP 127.0.0.1:47000->127.0.0.1:2181 (CLOSE_WAIT)

2 个答案:

答案 0 :(得分:1)

您的zookeeper仲裁地址10.219.47.22:60010还指定一个端口(60010)删除它 在法定人数之后,您还有一个不必要的.

conf.set("hbase.zookeeper.quorum", "10.219.47.22"); 
conf.set("hbase.zookeeper.property.clientPort", "2181");

答案 1 :(得分:1)

60010端口仅适用于web ui,不适用于连接。 检查此代码段是否可以为您提供帮助:

Configuration hbaseConfiguration = HBaseConfiguration.create();
hbaseConfiguration.addResource(new Path("hbase-site.xml");

并在hbase-site.xml文件中添加主节点上hbase安装文件夹的conf文件夹中的属性。