java连接HBase问题笔记

1、问题描述

启动HBase,并通过如下java客户端连接HBase服务器:

        Configuration configuration = HBaseConfiguration.create();
        configuration.set("hbase.zookeeper.quorum","localhost");
        Connection connection = ConnectionFactory.createConnection(configuration);
        TableName tableName = TableName.valueOf("test");
        boolean res = connection.getAdmin().tableExists(tableName);
        System.out.println(res);

结果,程序卡死,也没有报错,当达到超时设置时,提示

java.net.ConnectException: Connection refused: no further information
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at org.apache.hadoop.hbase.shaded.org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.hadoop.hbase.shaded.org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

2、问题分析

在网上查了好久,发现该错误一般就是连接不上HBase导致,为什么连接不上呢?
首先我们访问HBase的管理页面http://localhost:16010可以看到Master的域名:

这里是你的hostname,一般是机器名称相关
Master 01C702601479820.corp.****.com

2、可以看到这个域名,机器是无法处理的,我们需要查看本机的局域网ip然后修改host文件
3、c:/windows/system32/drivers/etc/hosts

192.168.1.2 01C702601479820.corp.****.com

4、然后执行上面客户端代码,即可访问成功

你可能感兴趣的:(java连接HBase问题笔记)