HBase Shell提供了大量的操作HBase的命令,通过Shell命令可以很方便地操作HBase数据库,例如创建、删除及修改表、向表中添加数据、列出表中的相关信息等操作。不过当使用Shell命令行操作HBase时,首先需要进入HBase Shell交互界面。执行“bin/hbase shell”命令进入到目录/hbase-1.2.1的界面,具体效果如图1所示。
![9d0279a84e29ec5596308edb9583b9b5.png](https://i-blog.csdnimg.cn/blog_migrate/c8eaa0887aa54722936ee37da4825a49.png)
进入HBase Shell交互界面后,可以通过一系列Shell命令操作HBase,接下来,通过一张表列举一些操作HBase表常见的Shell命令,具体如表1所示。
![f27b610ade61bfc0b6dc47be8c13bff1.png](https://i-blog.csdnimg.cn/blog_migrate/fc15ec072a44abf5670deee9341c284a.jpeg)
关于HBase中常见的Shell操作的讲解具体如下:
1. 创建表
通过create创建表,具体语法如下:
create
在上述语法中,“table name”为表名,创建表必须指定;“column family”为列族名,创建表也必须指定。
例如,创建一个名称为student、列族名为info的HBase表,命令如下:
hbase
执行“list”命令,查看数据库中的数据表,命令如下:
hbase
在上述代码中,出现了student数据表,说明创建表成功。
2. 插入操作
通过使用put插入或者更新表中的数据,具体语法如下:
put
在上述语法中,“row1”为行键(即Row Key);“column family:column name”为列族名和列名;“value”为插入列的值。
例如,向student表中插入五条数据,命令如下:
hbase
4. 查看操作
通过describe查看表结构,具体语法如下:
describe
查看student表的表结构,命令如下:
hbase
上述代码中,通过describe输出了student表的结构,表结构包含很多字段,具体介绍如下:
NAME:表示列族名。
BLOOMFILTER:表示为列族级别的类型(读者只作了解即可)。
VERIONS:表示版本数。
N_MEMORY:设置是否存入内存。
KEEP_DELETED_CELLS:设置被删除的数据,在基于时间的历史数据查询中是否依然可见。
DATA_BLOCK_ENCODING:表示数据块的算法(读者只作了解即可)。
TTL:表示版本存活的时间。
COMPRESSION:表示设置压缩算法。
MIN_VERSIONS:表示最小版本数。
BLOCKCACHE:表示是否设置读缓存。
REPLICATION:表示设置备份。
5. 更新操作
通过使用put更新student表指定字段的数据,具体语法如下:
put
在student表中,将行键为1001、列名name且值为18这一条数据中的值更新成100,命令如下:
hbase
上述命令执行成功后,使用scan扫描数据表中的数据,扫描结果如下:
hbase
上述代码中,行键为1001、列名为info:name且值为18这一条数据中的值已经更新成100。
6. 获取指定字段的操作
通过使用get获取指定行或指定列族:列的数据,具体语法如下:
//查看指定行的数据
获取student表中行键为1001的数据,命令如下:
hbase
8. 删除操作
通过使用delete删除表中“指定字段”的数据,具体语法如下:
delete
删除student表中行键为1002、列名为info:sex的一条数据,命令如下:
hbase
上述命令执行成功后,使用scan获取数据表中的数据,命令如下:
hbase
从上述代码可以看出,行键为1002、列名为info:sex的数据已经被删除。
如果要删除表中一行所有的数据,可以使用deleteall命令,具体语法如下:
deleteall
例如,删除student表中行键为1001的所有数据,命令如下:
hbase
上述通过使用scan扫描数据表中的数据,扫描结果如下:
hbase
从上述代码可以看出,行键为1001的所有数据已经被删除了。
通过使用truncate清空表中的所有数据,具体语法如下:
truncate
清空student表中的所有数据,命令如下:
hbase
通过使用scan扫描数据表中的数据,扫描结果如下:
hbase
从上述代码可以看出,表student中的所有数据都已经被清空。
通过使用drop删除表,具体语法如下:
drop
例如,删除表student,命令如下:
hbase
上述的代码中,首先使用“disable”让student表变为禁用状态,然后进行删除操作。若表不是禁用状态,则无法删除。
通过使用list获取HBase数据库中的所有数据表,命令如下:
hbase
上述代码中,“[ ]”表示数据库已经为空,说明student表已经被删除。