createtable方法可以工作,但没有完成

3mpgtkmj  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(277)

我目前正在尝试使用javaapi连接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,就会创建带有列family movies的表actors。我已经不知道我会做错什么了。

rjee0c15

rjee0c151#

要确定确切的原因,请执行以下操作。
在运行此程序的log4j.properties中启用调试日志。
把这条线包括在你的试块里
org.apache.hadoop.hbase.client.hbaseadmin.checkhbaseavailable(conf);
这将确定是否有任何连接到hbase的初步问题,如果有则抛出错误。

相关问题