Подключите Hbase Stand Alone к виртуальной машине Virtualbox из Windows 10 с приложением Java - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь подключиться (и создать новую таблицу) к HBase, установленному на виртуальной машине Ubuntu, с помощью приложения Java, работающего в Windows 10.

Я уверен, что HBase работает и Код java тоже, потому что, если я отправляю его прямо в Intellij, установленный внутри виртуальной машины, он работает, но если я запускаю приложение java в Windows (host maquine), возвращается эта ошибка:

"Исключение в потоке "основная" организация. apache .had oop .hbase.client.RetriesExhaustedException: ошибка после попыток = 5, исключения: 2020-02-17T15: 38: 25.890Z, RpcRetringCaller {globalStartTime = 1581953902178, пауза = 100 , maxAttempts = 5}, org. apache .had oop .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 ");}

Я уверен, что хост может "видеть" виртуальную машину потому что я могу открыть веб-панель HBase в Windows

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

Итак, я думаю, что проблема в портах или что-то net безопасность, но я не смог решить проблемы. Не могли бы вы мне помочь?

IP windows машина: 192.168.56.1 IP VM: 192.168.56.101

Я изменил файл хоста в vm (машина hbase) со следующими значениями:

enter image description here

1 Ответ

0 голосов
/ 18 февраля 2020

Наконец, я решил проблему, вы должны отредактировать файл hosts на сервере HBase, чтобы изменить строку:

127.0.0.1 localhost для 192.168.56.101 nameServer

...