hbase的Shell命令操作
hbase的Shell命令操作
hbase的命令操作表
help | 查看命令的使用描述 | help '命令名' |
whoami | 身份(root、user) | whoami |
version | 返回hbase版本信息 | version |
status | 返回hbase集群的状态信息 | status |
table_help | 查看如何操作表 | table_help |
create | 创建表 | create '表名', '列族名1', '列族名2', '列族名N' |
alter | 修改列族 | 添加列族:alter '表名', NAME=>'列族名' 删除列族:alter '表名', {NAME=> '列族名', METHOD=> 'delete'} |
describe | 显示表相关的详细信息 | describe '表名' |
list | 列出hbase中存在的所有表 | list |
exists | 测试表是否存在 | exists '表名' |
put | 添加或修改的表的值 | put '表名', '行键', '列族名', '列值' put '表名', '行键', '列族名:列名', '列值' |
scan | 通过对表的扫描来获取对用的值 | scan '表名' 扫描某个列族:scan '表名',{COLUMN=>'列族名',FORMATTER =>'toString'} 扫描某个列族的某个列:scan '表名', {COLUMN=>'列族名:列名'} 查询同一个列族的多个列: scan '表名', {COLUMNS => [ '列族名1:列名1', '列族名1:列名2' …]} |
get | 获取行或单元(cell)的值 | get '表名', '行键' get '表名', '行键', '列族名' |
count | 统计表中行的数量 | count '表名' |
incr | 增加指定表行或列的值 | incr '表名', '行键', '列族:列名', 步长值 |
get_counter | 获取计数器 | get_counter '表名', '行键', '列族:列名' |
delete | 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值) | 删除列族的某个列: delete 表名', '行键', '列族名:列名' |
deleteall | 删除指定行的所有元素值 | deleteall '表名', '行键' |
truncate | 重新创建指定表(清空表) | truncate '表名' |
enable | 使表有效 | enable '表名' |
is_enabled | 是否启用 | is_enabled '表名' |
disable | 使表无效(删除表之前先禁用) | disable '表名' |
is_disabled | 是否无效 | is_disabled '表名' |
drop | 删除表 | drop的表必须是disable的 disable '表名' drop '表名' |
shutdown | 关闭hbase集群(与exit不同) | |
tools | 列出hbase所支持的工具 | |
exit | 退出hbase shell |
Shell命令的基本操作:
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' create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}
2. 修改(添加、删除)表结构Schema alter
2.1 添加一个列族
# 语法 alter '表名', '列族名' # 示例 alter 'tbl_user', 'address'
2.2 删除一个列族
# 语法 alter '表名', {NAME=> '列族名', METHOD=> 'delete'} # 示例 alter 'tbl_user', {NAME=> 'address', METHOD=> 'delete'}
表是否存在exists
# 语法 exists '表名' # 示例 exists 'tbl_user'
启用表enable和禁用表disable
# 语法 enable '表名' is_enabled '表名' disable '表名' is_disabled '表名' # 示例 disable 'tbl_user' is_disabled 'tbl_user' enable 'tbl_user' is_enabled 'tbl_user'
删除表drop
# 语法 disable '表名' drop '表名' # 示例 disable 'tbl_user' drop 'tbl_user'
插入或者修改数据put
# 语法 # 当列族中只有一个列时'列族名:列名'使用'列族名' put '表名', '行键', '列族名', '列值' put '表名', '行键', '列族名:列名', '列值' # 示例 # 创建表 create 'tbl_user', 'info', 'detail', 'address' # 第一行数据 put 'tbl_user', 'mengday', 'info:id', '1' put 'tbl_user', 'mengday', 'info:name', '张三' put 'tbl_user', 'mengday', 'info:age', '28' put 'tbl_user', 'mengday', 'detail:birthday', '1990-06-26' put 'tbl_user', 'mengday', 'detail:email', 'abc@163.com' put 'tbl_user', 'mengday', 'detail:create_time', '2019-03-04 14:26:10' put 'tbl_user', 'mengday', 'address', '上海市' # 第二行数据 put 'tbl_user', 'vbirdbest', 'info:id', '2' put 'tbl_user', 'vbirdbest', 'info:name', '李四' put 'tbl_user', 'vbirdbest', 'info:age', '27' put 'tbl_user', 'vbirdbest', 'detail:birthday', '1990-06-27' put 'tbl_user', 'vbirdbest', 'detail:email', 'xxx@gmail.com' put 'tbl_user', 'vbirdbest', 'detail:create_time', '2019-03-05 14:26:10' put 'tbl_user', 'vbirdbest', 'address', '北京市' # 第一行数据 put 'tbl_user', 'xiaoming', 'info:id', '3' put 'tbl_user', 'xiaoming', 'info:name', '王五' put 'tbl_user', 'xiaoming', 'info:age', '26' put 'tbl_user', 'xiaoming', 'detail:birthday', '1990-06-28' put 'tbl_user', 'xiaoming', 'detail:email', 'xyz@qq.com' put 'tbl_user', 'xiaoming', 'detail:create_time', '2019-03-06 14:26:10' put 'tbl_user', 'xiaoming', 'address', '杭州市'
全表扫描scan
# 语法 scan '表名' # 示例 scan 'tbl_user'
扫描整个列簇
# 语法 scan '表名', {COLUMN=>'列族名'} # 示例 scan 'tbl_user', {COLUMN=>'info'}
获取数据get
# 语法 get '表名', '行键' # 示例 get 'tbl_user', 'mengday'
删除某个列族中的某个列delete
# 语法 delete '表名', '行键', '列族名:列名' create 'tbl_test', 'columnFamily1' put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value1' put 'tbl_test', 'rowKey1', 'columnFamily1:column2', 'value2' delete 'tbl_test', 'rowKey1', 'columnFamily1:column1'
删除某行数据deleteall
# 语法 deleteall '表名', '行键' # 示例 deleteall 'tbl_test', 'rowKey1'