Hbase shell常见语法
Hbase shell常见语法
连接到hbase shell
hbase shell位于Hbase目录下的/bin目录下,如果没有配置环境变量,可以使用./bin/hbase shell
显示hbase sehll的帮助信息
help
注意:表名、行、列都必须用引号引起来
退出hbase shell客户端
quit
1. hbase-namespace
-
使用
create_namespace创建命名空间,可以同时指定属性hbase(main):001:0> create_namespace 'ns1' hbase(main):002:0> create_namespace 'ns1', {'propertyName'=>'propertyValue'} -
使用
alter_namespace修改命名空间属性# 新增命名空间的属性值 hbase(main):003:0> alter_namespace 'myns', {METHOD => 'set', 'propertyName' => 'propertyValue'} # 删除命名空间已经存在的属性值 hbase(main):004:0> alter_namespace 'myns', {METHOD => 'unset', NAME => 'propertyName'} -
使用
describe_namespace查看命名空间的描述信息hbase(main):005:0> describe_namespace 'myns' -
使用
drop_namespace删除命名空间注意:这个namespacae必须为空,如果有表,不能被删除
hbase(main):006:0> drop_namespace 'myns' -
使用
list_namespace列出命名空间# 列出所有的命名空间 hbase(main):007:0> list_namespace # 列出符合规范的命名空间:列出所有以my开头的命名空间 hbase(main):008:0> list_namespace "my.*" -
使用
list_namespace_tables列出命名空间中的表hbase(main):009:0> list_namespace_tables 'myns'
2. hbase-table
用如下的表进行示范,表名为emp,内容包括3个列簇(列族)(列簇和列族有相同意思,本人习惯称为列簇)
| rowkey | base_info | extra_info | address_info |
|---|---|---|---|
-
使用
create创建一个表注意:创建表时,如果没有指定命名空间,则默认创建在default命名空间下
在创建表时同时,必须至少指定一个列簇
hbase(main):010:0> create 'emp', 'base_info'可以使用变量,指定创建表,在后面,如果使用到这张表,就可以直接使用变量名.去使用表的内容
t.put/t.drop/t.enable
hbase(main):011:0> t = create 'emp', 'base_info' -
使用
list列出表的相关信息hbase(main):012:0> list 'emp' -
使用
describe查看详细信息,包括默认的配置hbase(main):013:0> describe 'emp' -
使用
alter修改表的相关信息修改列簇的信息
hbase(main):014:0> alter 'emp', NAME => 'base_info', VERSIONS => 5 hbase(main):015:0> describe 'emp' hbase(main):016:0> t.describe新增列簇
hbase(main):017:0> alter 'emp', 'base_info', {NAME => 'extra_info', IN_MEMORY => true}, {NAME => 'address_info', VERSIONS => 5}删除列簇
hbase(main):018:0> alter 'default:emp', NAME => 'base_info', METHOD => 'delete' hbase(main):019:0> alter 'default:emp', 'delete' => 'extra_info' -
使用
put插入数据注意:put只能一次插入一个值
第一个是在:emp表中的base_info列簇下的name属性增加值为zhangsan
hbase(main):020:0> put 'emp', 'row1', 'base_info:name', 'zhangsan' hbase(main):021:0> put 'emp', 'row2', 'base_info:age', '23' hbase(main):022:0> put 'emp', 'row3', 'base_info:gender', 'male' -
使用
scan查看数据注意:scan扫描表中的数据,可以限制范围
hbase(main):023:0> scan 'emp' -
使用
get获取指定行数据hbase(main):024:0> get 'emp', 'row1' -
使用
disable禁用表如果想删除或者改变其设置,可以使用disable禁用,通过enable重新启用
hbase(main):025:0> disable 'emp' hbase(main):026:0> enable 'emp' -
使用
drop删除表删除表之前,一定要先使用disable禁用表
hbase(main):027:0> disable 'emp' hbase(main):028:0> drop 'emp'

京公网安备 11010502036488号