Hbase Java API-createTable方法有效,但没有完成

时间:2018-12-09 22:52:28

标签: java api hbase apache-zookeeper

我目前正在尝试使用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 shell,则会创建带有列家庭影片的表参与者。我在这里可能会做错什么的想法不多了。

1 个答案:

答案 0 :(得分:0)

要确定确切原因,请执行以下操作。

  • 在运行该程序的log4j.properties中启用调试日志。

  • 将此行包含在try块中

  

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

这将确定是否存在与hbase相关的任何初步问题,并抛出错误(如果有)。