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

问题描述 投票:0回答:1

我正在尝试使用Windows 10中运行的Java应用程序在Ubuntu VM中连接(并创建新表)到HBase。

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

“线程“主”中的异常org.apache.hadoop.hbase.client.RetriesExhaustedException:尝试次数= 5后失败,异常:2020-02-17T15:38:25.890Z,RpcRetryingCaller {globalStartTime = 1581953902178,pause = 100,maxAttempts = 5},org.apache.hadoop.hbase.MasterNotRunningException:java.net.ConnectException:调用danny-VirtualBox / 192.168。 56.101:16000在连接异常时失败:org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel $ AnnotatedConnectException:连接被拒绝:没有更多信息: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面板

([http://192.168.56.101:16010/master-status

所以,我认为问题是端口或有关网络安全的问题,但我无法解决问题。柯洛德,你帮我吗?

IP Windows机器:192.168.56.1IP VM:192.168.56.101

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

enter image description here

java hbase virtual-machine virtualbox
1个回答
0
投票

最后我解决了这个问题,您必须在HBase服务器中编辑hosts文件来更改该行:

127.0.0.1本地主机对于192.168.56.101 nameServer

© www.soinside.com 2019 - 2024. All rights reserved.