使用Java应用程序在Windows 10的Virtualbox VM中独立连接Hbase

使用Java应用程序在Windows 10的Virtualbox VM中独立连接Hbase,java,hbase,virtual-machine,virtualbox,Java,Hbase,Virtual Machine,Virtualbox,我正在尝试使用运行在Windows10中的Java应用程序连接(并创建新表)到安装在Ubuntu虚拟机中的HBase 我确信HBase可以正常工作,java代码也可以正常工作,因为如果我直接在安装在VM中的Intellij中发送它,它可以正常工作,但是如果我在Windows中启动java应用程序(主机maquine),会返回此错误: 线程“main”org.apache.hadoop.hbase.client.RetrieseHaustedException:尝试次数=5次后失败,异常: 202

我正在尝试使用运行在Windows10中的Java应用程序连接(并创建新表)到安装在Ubuntu虚拟机中的HBase

我确信HBase可以正常工作,java代码也可以正常工作,因为如果我直接在安装在VM中的Intellij中发送它,它可以正常工作,但是如果我在Windows中启动java应用程序(主机maquine),会返回此错误:

线程“main”org.apache.hadoop.hbase.client.RetrieseHaustedException:尝试次数=5次后失败,异常: 2020-02-17T15:38:25.890Z,RpcRetryingCaller{globalStartTime=1581953902178,pause=100,maxtures=5},org.apache.hadoop.hbase.MasterNotRunningException:java.net.ConnectException:调用danny VirtualBox/192.168.56.101:16000连接失败异常:org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel$AnnotatedConnectionException:连接被拒绝:无进一步信息:danny VirtualBox/192.168.56.101:16000“

我有以下代码:

    public static void main(String[] args) throws Exception {

    Configuration con = HBaseConfiguration.create();

    con.clear();
    con.set("hbase.zookeeper.quorum", "192.168.56.101");
    con.set("hbase.master", "192.168.56.101:16000");
    con.set("hbase.zookeeper.property.clientport", "2181");
    con.set("hbase.client.retries.number", "4");
    con.set("hbase.rpc.timeout", "3000");
    con.set("hbase.security.authentication", "simple");
    con.set("zookeeper.znode.parent", "/hbase");

    Connection conn = ConnectionFactory.createConnection(con);
    Admin admin  = conn.getAdmin();

    // Instantiating table descriptor class
    HTableDescriptor tableDescriptor = new
            HTableDescriptor(TableName.valueOf("emp2"));

    // Adding column families to table descriptor
    tableDescriptor.addFamily(new HColumnDescriptor("personal"));
    tableDescriptor.addFamily(new HColumnDescriptor("professional"));

    // Execute the table through admin
    admin.createTable(tableDescriptor);
    System.out.println(" Table created ");}
我确信主机可以“看到”VM,因为我可以在Windows中打开HBase Web面板

()

所以,我认为问题在于端口或网络安全,但我无法解决这些问题。你能帮我吗

IP windows计算机:192.168.56.1 IP虚拟机:192.168.56.101

我已使用以下值修改vm(hbase计算机)中的主机文件:


最后我解决了问题,您必须在HBase服务器中编辑主机文件以更改行:

127.0.0.1本地主机 对于
192.168.56.101名称服务器

从不从主机文件中删除127.0.0.1