- HBase 教程
- HBase - 首页
- HBase - 概述
- HBase - 架构
- HBase - 安装
- HBase - Shell
- HBase - 常用命令
- HBase - 管理员 API
- HBase - 创建表
- HBase - 列出表
- HBase - 禁用表
- HBase - 启用表
- HBase - 描述和修改
- HBase - 表是否存在
- HBase - 删除表
- HBase - 关闭
- HBase - 客户端 API
- HBase - 创建数据
- HBase - 更新数据
- HBase - 读取数据
- HBase - 删除数据
- HBase - 扫描
- HBase - 计数和截断
- HBase - 安全性
- HBase 资源
- HBase - 常见问题解答
- HBase - 快速指南
- HBase - 有用资源
HBase - 禁用表
使用 HBase Shell 禁用表
要删除表或更改其设置,您需要首先使用 disable 命令禁用表。您可以使用 enable 命令重新启用它。
以下是禁用表的语法
disable ‘emp’
示例
以下是一个显示如何禁用表的示例。
hbase(main):025:0> disable 'emp' 0 row(s) in 1.2760 seconds
验证
禁用表后,您仍然可以通过 **list** 和 **exists** 命令感知其存在。您无法扫描它。它会给出以下错误。
hbase(main):028:0> scan 'emp' ROW COLUMN + CELL ERROR: emp is disabled.
is_disabled
此命令用于查找表是否已禁用。其语法如下。
hbase> is_disabled 'table name'
以下示例验证名为 emp 的表是否已禁用。如果已禁用,则返回 true,否则返回 false。
hbase(main):031:0> is_disabled 'emp' true 0 row(s) in 0.0440 seconds
disable_all
此命令用于禁用与给定正则表达式匹配的所有表。**disable_all** 命令的语法如下。
hbase> disable_all 'r.*'
假设 HBase 中有 5 个表,分别为 raja、rajani、rajendra、rajesh 和 raju。以下代码将禁用所有以 **raj** 开头的表。
hbase(main):002:07> disable_all 'raj.*' raja rajani rajendra rajesh raju Disable the above 5 tables (y/n)? y 5 tables successfully disabled
使用 Java API 禁用表
要验证表是否已禁用,请使用 **isTableDisabled()** 方法,要禁用表,请使用 **disableTable()** 方法。这些方法属于 **HBaseAdmin** 类。请按照以下步骤禁用表。
步骤 1
如下所示实例化 **HBaseAdmin** 类。
// Creating configuration object Configuration conf = HBaseConfiguration.create(); // Creating HBaseAdmin object HBaseAdmin admin = new HBaseAdmin(conf);
步骤 2
如下所示,使用 **isTableDisabled()** 方法验证表是否已禁用。
Boolean b = admin.isTableDisabled("emp");
步骤 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
广告