HBase命令终端测试

举报
淼淼之森 发表于 2019/01/30 14:24:42 2019/01/30
【摘要】 [root@CloudDeskTop ~]# su -l hadoop[hadoop@CloudDeskTop ~]$ cd /software/hbase-1.2.6/bin/[hadoop@CloudDeskTop bin]$ type hbasehbase is /software/hbase-1.2.6/bin/hbase[hadoop@CloudDeskTop bin]$ hbas...

[root@CloudDeskTop ~]# su -l hadoop
[hadoop@CloudDeskTop ~]$ cd /software/hbase-1.2.6/bin/

[hadoop@CloudDeskTop bin]$ type hbase
hbase is /software/hbase-1.2.6/bin/hbase

[hadoop@CloudDeskTop bin]$ hbase shell


image.png


删除键:向左删除是ctrl+backspace、向右删除是backspace。


表空间:

hbase默认有两个表空间,它们是default和hbase


列出有多少个表空间:

hbase(main):003:0> list_namespace

NAMESPACE 

default (当未指定表空间时,数据存放在此处) 

hbase(存放元数据的表空间)


查看default表空间下有哪些表:

>>list_namespace_tables 'default'

禁止创建表到hbase表空间下

>>list_namespace_tables 'hbase'

创建表空间:

>>create_namespace 'mmzs'

查看表空间信息:

>>describe_namespace 'mmzs'

删除表空间:

>>drop_namespace 'mmzs'

 

创建表tuser,该表中有两个列族baseinfo和extrainfo,baseinfo族中存储的每个值的最近时间版本数量为5,族参数 必须大写,如NAME和VERSION
>>create 'mmzs:tuser',{NAME=>'baseinfo',VERSIONS=>5},{NAME=>'extrainfo',VERSIONS=>3}
显示表结构:
>>describe 'mmzs:tuser'

#会先判断有没有,有就修改,没有就增加,修改是alter
修改表:修改表定义,修改列族baseinfo,将主版本数量改为3
>>alter 'mmzs:tuser',{NAME=>'baseinfo',VERSIONS=>3}
>>describe 'mmzs:tuser'

修改表:修改表定义,增加列族base
>>alter 'mmzs:tuser',{NAME=>'base',VERSIONS=>5}
>>describe 'mmzs:tuser'

修改表:修改表定义,删除列族baseinfo,低版本的HBase需要先disable而不是alter,再delete
>>alter 'mmzs:tuser',{NAME=>'baseinfo',METHOD=>'delete'}
>>describe 'mmzs:tuser'

判断是否存在某表:
>>exists 'mmzs:tuser'

#删除是drop
删除表:在删除表之前必须先disable禁用表然后再执行drop操作删除它
>>disable 'mmzs:tuser'
>>drop 'mmzs:tuser'
>>describe 'mmzs:tuser'

小结:大数据学习交流QQ群:217770236 

创建表:
命名空间的DDL语法为:xxx_namespace 'namespace'表的DDL操作语法:>>xxx 'namespace:tablename',{NAME='yyyy',VERSION='number',METHOD='delete'}

 image.png

创建表:

>>create 'mmzs:tuser',{NAME=>'base',VERSIONS=>5},{NAME=>'extra',VERSIONS=>3}

增加键值对到表中:向mmzs表空间的tuser表中的base列族中添加name列,添加值为ligang

#'base:name'称为键

#'ligang'称为值

#修改和增加都是put,存在时是修改,不存在时是增加

>>put 'mmzs:tuser','001','base:name','ligang'

>>put 'mmzs:tuser','001','base:age',13

查询表中键对应的值:

>>get 'mmzs:tuser','001','base:name'

查询001行的所有键值对

>>get 'mmzs:tuser','001','base:name'

修改键值对:

>>put 'mmzs:tuser','001','base:name','zhangsan'

删除表中的键值对:

>>delete 'mmzs:tuser','001','base:name'


删除表中的所有数据并重置表的结构,实际上truncate属于DDL操作
>>truncate 'mmzs:tuser'


扫描表中的所有行的数据:
>>scan 'mmzs:tuser'

使用get_table预定义一个表对象的引用(ddl操作),
>>tuser=get_table 'mmzs:tuser'
>>tuser.scan

统计表中的行记录数:
>>count 'mmzs:tuser'

小结:

hbase表的增删改查操作语法:>>copmmand 'namespace:tabname','rowkey','family:fieldkey','fieldvalue'

 


DDL数据检索与查询:
#get只能返回单行记录中的键值对

复制代码

//Some examples:hbase> get 'ns1:t1', 'r1'hbase> get 't1', 'r1'hbase> get 't1', 'r1', {TIMERANGE => [ts1, ts2]}
hbase> get 't1', 'r1', {COLUMN => 'c1'}
hbase> get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4}
hbase> get 't1', 'r1', {FILTER => "ValueFilter(=, 'binary:abc')"}
hbase> get 't1', 'r1', 'c1'hbase> get 't1', 'r1', 'c1', 'c2'hbase> get 't1', 'r1', ['c1', 'c2']
hbase> get 't1', 'r1', {COLUMN => 'c1', ATTRIBUTES => {'mykey'=>'myvalue'}}
hbase> get 't1', 'r1', {COLUMN => 'c1', AUTHORIZATIONS => ['PRIVATE','SECRET']}
hbase> get 't1', 'r1', {CONSISTENCY => 'TIMELINE'}
hbase> get 't1', 'r1', {CONSISTENCY => 'TIMELINE', REGION_REPLICA_ID => 1}

复制代码

根据行键检索对应记录中所有列族下的所有键值对:
根据行键和列族检索对应列族中的所有键值对:
根据行键、列族和字段键检索对应键值:
根据行键检索对应记录中所有列族下的所有键值对:
>>get 'mmzs:tuser','001','base'
>>get 'mmzs:tuser','001','base','extra'
>>get 'mmzs:tuser','001','base:name','base:age'
>>get 'mmzs:tuser','001',{COLUMN=>['base:name','base:age']}
>>get 'mmzs:tuser','001',{COLUMN=>['base:name','base:age'],VERSION=>3}
>>get 'mmzs:tuser','ligang+13','baseinfo','extra'
#匹配含liubei的value值
>>get 'mmzs:tuser','002',{FILTER=>"ValueFilter(=,'substring:liubei')"}
#匹配含name字段的字段值
>>get 'mmzs:tuser','002',{FILTER=>"QualifierFilter(=,'substring:name')"}

 

#scan扫描多行记录:

复制代码

//Some examples:hbase> scan 'hbase:meta'hbase> scan 'hbase:meta', {COLUMNS => 'info:regioninfo'}
hbase> scan 'ns1:t1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}
hbase> scan 't1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}
hbase> scan 't1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}
hbase> scan 't1', {REVERSED => true}
hbase> scan 't1', {ALL_METRICS => true}
hbase> scan 't1', {METRICS => ['RPC_RETRIES', 'ROWS_FILTERED']}
hbase> scan 't1', {ROWPREFIXFILTER => 'row2', FILTER => "(QualifierFilter (>=, 'binary:xyz')) AND (TimestampsFilter ( 123, 456))"}
hbase> scan 't1', {FILTER =>org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}
hbase> scan 't1', {CONSISTENCY => 'TIMELINE'}
For setting the Operation Attributes 
hbase> scan 't1', { COLUMNS => ['c1', 'c2'], ATTRIBUTES => {'mykey' => 'myvalue'}}
hbase> scan 't1', { COLUMNS => ['c1', 'c2'], AUTHORIZATIONS => ['PRIVATE','SECRET']}

复制代码

根据列族检索所有键值对:
>>scan 'mmzs:tuser',{COLUMNS=>'base'}
>>scan 'mmzs:tuser',{COLUMNS=>['base:name','extra:name']}
#根据Key部分字段匹配:
>>scan 'mmzs:tuser',{COLUMNS=>['base','extra'],FILTER=>"QualifierFilter(=,'substring:age')"}
#根据Value部分字段匹配:
>>scan 'mmzs:tuser',{COLUMNS=>['base','extra'],FILTER=>"ValueFilter(=,'substring:liubei')"}
#查询指定行到指定行
>>scan 'mmzs:tuser',{COLUMNS=>['base','extra'],STARTROW=>'002',ENDROW=>'004'}
#根据行键进行过滤,秒级速度
>>put 'mmzs:tuser','ligang+20171205+chengdu','base:name','ligang'
>>scan 'mmzs:tuser',{ROWPREFIXFILTER=>'ligang'}
#扫描过滤后并用limit进行分页处理,从第二行开始,显示3行
>>scan 'mmzs:tuser',{COLUMN=>['base','extra'],STARTROW=>'002',LIMIT=>3}


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。