Hbase Java API - метод createTable работает, но не завершает - PullRequest
0 голосов
/ 10 декабря 2018

В настоящее время я пытаюсь использовать Java API для подключения к hbase и создания новой таблицы.Кажется, он работает, но метод admin.createTable () не завершается.Так что "Готово!"никогда не печатается, и программа никогда не заканчивается.Пожалуйста, смотрите код ниже.

        Configuration config = HBaseConfiguration.create();
        config.set("hbase.zookeeper.quorum", "xxx.xxx.xxx.xxx");
        config.set("hbase.zookeeper.property.clientport", "2181");

        String tableName = "actors";
        Connection connection;
        try {
            connection = ConnectionFactory.createConnection(config);
            Admin admin = connection.getAdmin();
            Table table = connection.getTable(TableName.valueOf(tableName));
            HTableDescriptor htable = new HTableDescriptor(TableName.valueOf(tableName)); 
            htable.addFamily( new HColumnDescriptor("movies"));
            System.out.println( "Creating Table..." );
            admin.createTable( htable );
            System.out.println("Done!");
            table.close();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

Нет исключений.Если я открою оболочку hbase, будет создана таблица актеров с фильмами семейства колонок.У меня заканчиваются идеи о том, что я могу делать неправильно.

1 Ответ

0 голосов
/ 10 декабря 2018

Чтобы определить точную причину, выполните следующие действия.

  • Включите журналы отладки в log4j.properties, где работает эта программа.

  • Включитьэта строка внутри вашего блока try

org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable (conf);

Это идентифицируетесли есть какие-либо предварительные проблемы с подключением к hbase и сгенерируйте ошибки, если таковые имеются.

...