Hbase shell常见语法
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'