Hbase常用命令速查

前言
  • 以下命令在hbase1.2.1版本下试验通过。
  • 记录常用hbase命令提高工作效率
常用命令
  • 使用命令操作时,需要对表名列名带上单引号,否则会被hbase认为是一个变量,会报如下错误:

    • NameError: undefined local variable or method `main2’ for Object:0x44b21f9f>
  • 查看安装版本

version
列族相关
1)增加/修改 一个列族,指定版本号
alter 'test_tianyan', NAME => 'main2', VERSIONS => 6
或者
alter 'test_tianyan', { NAME => 'main2', VERSIONS => 6 }

2)删除列族
alter 'test_tianyan','delete'=>'main2' 

3)如果是创建表时,则可以指定多个列族
create 'new_table','f1','f2','f3'

4)修改一个列族为多个版本
默认情况下,hbase只会存储一个版本的数据,如果有获取多个版本值的情况,则可通过如下命令修改。
alter 'test_tianyan',{NAME=>'main',VERSIONS=>5}
  
注意NAME和VERSIONS必须是大写。
可以使用VERSIONS和COLUMN指定获取多个版本数据。
get 'test_tianyan','testRowKey1',{COLUMN=>'main:id',VERSIONS=>5}

表结构相关
1)查看表描述(desc命令是 describe的缩写)
desc 'order_info_tbl'
或者 describe 'order_info_tbl'

2)删除表,在删除表之前,需要先disable,然后再用drop删除 
disable 'order_info_tbl'
drop 'order_info_tbl'

3)删除并重建表(其实也是调用disable后使用drop删除的)
truncate 'order_info_tbl'
数据相关
取5行数据
scan 'order_info_tbl' ,{LIMIT=>5}

查看hbase所有的filters
show_filters

列出所有表
list
列出sence开头的表
list 'list 'sence.*' 

通过rowKey精确查询 
get 'order_info_tbl','1018112285488692_1542878164726_10'


删除main列族下的tx_id列(delete '表名','rowKey','列族名:列' )
delete 'order_info_tbl','1543071151193','main:tx_id'

删除rowKey下的所有列
deleteall 'order_info_tbl', ’rowkey'

修改操作,将main列族下的tx_id列置空(put '表名','rowKey','列族名:列' )
put 'order_info_tbl','1543071151193','main:tx_id',''


设置指定rowKey下列的值
put 'test_tianyan','row2','main:name','hyq'

获取rowKey下具体一列的值
get 'test_tianyan','row2',{COLUMN=>'main:name'}



scan高级用法
配合show_filters命令,指定相应的filter使用。

指定开始位置和结束位置
scan 'order_info_tbl',{STARTROW=>'1018112552468133',ENDROW=>'1018112658271187',LIMIT=>11}

模糊匹配rowKey
scan 'test_tianyan',{ROWPREFIXFILTER=>'r',LIMIT=>2}

扫描多个列,限制行数
scan 'test_tianyan',{COLUMNS=>['main:id','main:name'],LIMIT=>1}

模糊匹配rowKey
scan 'order_info_tbl',{ROWPREFIXFILTER =>'11',LIMIT=>2,FILTER=>"(QualifierFilter (>, 'binary:1018021991552673')) "}

过滤出10条包含指定值的列
scan 'order_info_tbl', {FILTER=>"ValueFilter(=,'substring:41012_11')",LIMIT=>10}

rowKey前缀模糊匹配
scan 'test_tianyan', {FILTER => "PrefixFilter('r')"}

rowKey前缀模糊匹配,只查询指定列
scan 'test_tianyan',{COLUMNS=>'main:name',FILTER=>"PrefixFilter('r')"}
scan 'test_tianyan',{COLUMNS=>['main:name','main:id'],FILTER=>"PrefixFilter('r')"}

列过滤
scan 'test_tianyan',{FILTER=>"QualifierFilter(>=,'binary:name')"}

时间过滤器
scan 'test_tianyan',{FILTER=>"TimestampsFilter(1543813062349,1543813090552)"}

其他技巧
  • 组合多个命令
    • 可以组合多个命令,执行不同的操作,例如:改变列族main2的版本号为4,删除main4列族
alter 'test_tianyan',{NAME=>'main2',VERSIONS=>4},{NAME=>'main4',METHOD=>'delete'}

欢迎店点赞,分享、关注公众号
在这里插入图片描述

发布了106 篇原创文章 · 获赞 21 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/u012811805/article/details/84767713