HBase:通过JavaAPI截断表启用被截断的表
我在使用Java API截断HBase表时遇到了意外行为。具体而言,我正在执行以下操作:HBase:通过JavaAPI截断表启用被截断的表,java,hadoop,hbase,Java,Hadoop,Hbase,我在使用Java API截断HBase表时遇到了意外行为。具体而言,我正在执行以下操作: 禁用该表 截断表格 启用该表 与这些操作相对应的代码如下: Configuration conf = HBaseConfiguration.create(); // ... // Setting properly the configuration information // ... try (HBaseAdmin admin = new HBaseAdmin(conf)) { if
Configuration conf = HBaseConfiguration.create();
// ...
// Setting properly the configuration information
// ...
try (HBaseAdmin admin = new HBaseAdmin(conf)) {
if (admin.isTableEnabled(TABLE_NAME)) {
admin.disableTable(TABLE_NAME);
}
admin.truncateTable(TableName.valueOf(TABLE_NAME), false);
// Enabling the table after having truncated
admin.enableTable(TABLE_NAME);
} catch (MasterNotRunningException e) {
e.printStackTrace();
} catch (ZooKeeperConnectionException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
现在,truncate操作后的语句admin.enableTable(TABLE_NAME)
抛出一个org.apache.hadoop.hbase.TableNotDisabledException
。对吗?通过JavaAPI截断一个表会自动重新启用它吗
我已经检查了API,没有找到任何关于此行为的参考
我正在使用HBase,版本1.0.0-cdh5.5.0。HBase truncate需要执行3个操作: