hbase的shell操作
hbase shell
exit #退出命令行
version #查看当前hbase版本
status #查看状态
whoami #告诉你当前角色
- 注意表名、列名一般采用单括号包括
- 不支持SQL语句!采用自定义的命令和语法
- 参数大小写敏感
- 同一个表中不可有同名的列族
- 注意对列族参数的定义语法
- 注意对列族参数的定义语法
二.hbase的基本操作
一.表和列族的操作
1.create:创建表
# 语法
create '表名', {NAME => '列族名1'}, {NAME => '列族名2'}, {NAME => '列族名3'}
# 此种方式是上上面的简写方式,使用上面方式可以为列族指定更多的属性,如VERSIONS、TTL、BLOCKCACHE、CONFIGURATION等属性
create '表名', '列族名1', '列族名2', '列族名3'
create '表名', {NAME => '列族名1', VERSIONS => 版本号, TTL => 过期时间, BLOCKCACHE => true}
# 示例
create 'tbl_user', 'info', 'detail'
2. alter:修改表结构
2.1 添加一个列族
# 语法
alter '表名', '列族名'
# 示例
alter 'tbl_user', 'address'
2.2 删除一个列族
# 语法
alter '表名', {NAME=> '列族名', METHOD=> 'delete'}
# 示例
alter 'tbl_user', {NAME=> 'address', METHOD=> 'delete'}
2.3 修改列族的属性
可以修改列族的VERSIONS、IN_MEMORY
# 修改f1列族的版本为5
alter 't1', NAME => 'f1', VERSIONS => 5
# 修改多个列族,修改f2为内存,版本号为5
alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}
# 也可以修改table-scope属性,例如MAX_FILESIZE, READONLY,MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH等。
# 例如,修改region的最大大小为128MB:
alter 't1', MAX_FILESIZE => '134217728'
3.describe:描述表结构
# 语法
describe '表名'
# 示例
describe 'tbl_user'
4.exist:确认表是否存
#示例
exists 'tbl_user'
5.list:显示所有表名列表
#示例
list
6.disable/enable,is_disabled/is_enabled:禁用/解禁一个表,验证
通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled来检查表是否被禁用。
相应的表被禁用时,使用is_disabled命令查看表会出现true返回值,解禁同理
# 语法
enable '表名'
is_enabled '表名'
disable '表名'
is_disabled '表名'
# 示例
disable 'tbl_user'
is_disabled 'tbl_user'
enable 'tbl_user'
is_enabled 'tbl_user'
- 注意:这里的启用和禁用表都满足正则表达式。
# 匹配以t开头的表名
disable_all 't.*'
# 匹配指定命名空间ns下的以t开头的所有表
disable_all 'ns:t.*'
# 匹配ns命名空间下的所有表
disable_all 'ns:.*'
enable_all 't.*'
enable_all 'ns:t.*'
enable_all 'ns:.*'
7.drop/drop_all:删除一个或全部
7.1.这里要注意的时需要先禁用表,然后再删除表,启用的表是不允许删除的
# 语法
disable '表名'
drop '表名'
# 示例
disable 'tbl_user'
drop 'tbl_user'
7.2删除满足正则表达式的所有表drop_all
drop_all 't.*'
drop_all 'ns:t.*'
drop_all 'ns:.*'
8.truncate:禁用、删除并重建一个表
#示例
#创建一个表
create 't1', 'f1'
#删除并重建表't1'
truncate 't1'