Hbase 简明教程
HBase - Disabling a Table
Disabling a Table using HBase Shell
要删除表或更改其设置,你首先需要使用 disable 命令禁用该表。你可以使用 enable 命令重新启用它。
以下是禁用表语法的说明:
disable ‘emp’
Verification
在禁用表之后,你仍然可以通过 list 与 exists 命令感知它的存在。你无法扫描它。它将给出以下错误。
hbase(main):028:0> scan 'emp'
ROW COLUMN + CELL
ERROR: emp is disabled.
Disable a Table Using Java API
要验证表是否已被禁用,使用 isTableDisabled() 方法,要禁用表,使用 disableTable() 方法。这些方法属于 HBaseAdmin 类。遵循以下步骤来禁用表。
Step 1
按如下所示实例化 HBaseAdmin 类。
// Creating configuration object
Configuration conf = HBaseConfiguration.create();
// Creating HBaseAdmin object
HBaseAdmin admin = new HBaseAdmin(conf);
Step 3
如果该表未禁用,按如下所示禁用它。
if(!b){
admin.disableTable("emp");
System.out.println("Table disabled");
}
以下是用来验证表是否已被禁用的完整程序;如果没有,如何禁用它。
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class DisableTable{
public static void main(String args[]) throws MasterNotRunningException, IOException{
// Instantiating configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HBaseAdmin class
HBaseAdmin admin = new HBaseAdmin(conf);
// Verifying weather the table is disabled
Boolean bool = admin.isTableDisabled("emp");
System.out.println(bool);
// Disabling the table using HBaseAdmin object
if(!bool){
admin.disableTable("emp");
System.out.println("Table disabled");
}
}
}
编译并执行上述程序,如下所示:
$javac DisableTable.java
$java DsiableTable
输出应如下所示:
false
Table disabled