HBase后续随笔

HBase命令行终端:hbase shell
F1、表空间管理:
1、查看表空间
hbase(main):002:0> list_namespace
2、查看表空间下有哪些表
hbase(main):003:0> list_namespace_tables 'default'
3、创建表空间
hbase(main):005:0> create_namespace 'bunfly'
4、删除表空间
hbase(main):008:0> drop_namespace 'bunfly'

F2、表的定义
1、创建表空间下的表(VERSIONS表示列族所存的最多版本数):
hbase(main):011:0> create 'bunfly:tuser',{NAME=>'baseinfo',VERSIONS=>5},{NAME=>'extrainfo',VERSIONS=>3}
查看表结构:
hbase(main):012:0> describe 'bunfly:tuser'
2、修改表:
hbase(main):013:0> alter 'bunfly:tuser',{NAME=>'baseinfo',VERSIONS=>3}
3、修改表定义,删除列族baseinfo
hbase(main):016:0> alter 'bunfly:tuser',{NAME=>'baseinfo',METHOD=>'delete'}
4、增加列族base
hbase(main):017:0> alter 'bunfly:tuser',{NAME=>'base',VERSIONS=>5}
5、删除表定义
1、判断是否存在表定义:
hbase(main):019:0> exists 'bunfly:tuser'
2、先要disable表定义:
hbase(main):020:0> disable 'bunfly:tuser'
3、删除表定义:
hbase(main):021:0> drop 'bunfly:tuser'
注:出现NotdisableException(修改为可用)异常时的操作:
disable 表定义 (enable 表定义--->可用)
is_enabled 表定义 (is_disable 表定义 ---->true)--->false
describe 表定义

小结:
命名空间的DDL语法为:xxx_namespace 'namespace' 例:create、drop等
xxx 'namespace:tabname',{NAME='yyyy',VERSION='number',METHOD='delete'}对应的增删改

HBase数据管理
-------------
#创建表定义
hbase(main):022:0> create 'bunfly:tuser',{NAME=>'base',VERSIONS=>5},{NAME=>'extra',VERSIONS=>3}
#添加表数据
hbase(main):023:0> put 'bunfly:tuser','001','base:name','ligang'
#读取表数据
hbase(main):024:0> get 'bunfly:tuser','001','base:name'
hbase(main):034:0> get 'bunfly:tuser','001' --->查看列族中所有字段值
hbase(main):039:0> scan 'bunfly:tuser' ---->扫描显示表定义下的所有字段值
#修改表数据
hbase(main):025:0> put 'bunfly:tuser','001','base:name','zhaoyun'
#删除表数据
hbase(main):027:0> delete 'bunfly:tuser','001','base:name'
#清空表数据
hbase(main):029:0> truncate 'bunfly:tuser'
#将表全名封装成对象
hbase(main):043:0> tuser=get_table 'bunfly:tuser'
使用对象调用
hbase(main):044:0> tuser.scan
hbase(main):045:0> tuser.count ---->看表行健值

DQL数据检索与查询
#根据行键检索对应记录中的所有列族下的所有键值对
get 'bunfly:tuser','liubei+20121212+beijing'
#根据行健和列族检索对应列族中的所有键值对
get 'bunfly:tuser','001','base:name','base:age'
#GET的过滤功能(根据Value值过滤,根据key过滤用QualifierFilter)
get 'bunfly:tuser','002',{FILTER=>"ValueFilter(=,'substring:liubei')"}
get 'bunfly:tuser','001',{FILTER=>"QualifierFilter(=,'substring:name')"}
-------------
get只能返回单行记录中的键值对
#scan过滤
scan 'bunfly:tuser',{COLUMNS=>'base'}
scan 'bunfly:tuser',{COLUMNS=>['base','extra']}
scan 'bunfly:tuser',{COLUMNS=>['base:name','extra:age']}
#scan过滤(根据Value值过滤,根据key过滤用QualifierFilter)
scan 'bunfly:tuser',{COLUMNS=>['base','extra'],FILTER=>"ValueFilter(=,'substring:liubei')"}
scan 'bunfly:tuser',{COLUMNS=>['base','extra'],FILTER=>"QualifierFilter(=,'substring:age')"}
#根据行键前闭后开查询
scan 'bunfly:tuser',{COLUMNS=>['base','extra'],STARTROW=>'002',ENDROW=>'004'}
#根据行键索引查询
scan 'bunfly:tuser',{ROWPREFIXFILTER=>'ligang'}
#根据行健分页查询显示
scan 'bunfly:tuser',{COLUMN=>['base','extra'],STARTROW=>'002',LIMIT=>3}

原文地址:https://www.cnblogs.com/pandazhao/p/8127044.html