hbase shell常用命令行

来源:互联网 发布:linux c daemon 编辑:程序博客网 时间:2024/05/16 10:46
注:
修改值 :TTL => '15552000 SECONDS (180 DAYS)
默认值:TTL => 'FOREVER'
1:进入hbase
hbase shell
2:查看当前用户
whoami
3:查看有哪些表
list
查看以什么开头的表
list 'lushuang.*' #显示lushuang开头的表
4:创建表(表名:lushuang_test,两个family name:F1,F2,且版本均为2)
create 'lushuang_test',{NAME=>'F1',VERSION=>2},{NAME=>'F2',VERSION=>2}
5:查看表结构以及修改表结构
describe 'lushuang_test'
修改表结构之前先diasble
alter 'lushuang_test',{NAME=>'F1',TTL=>'15552000'}(修改表lushuang_test的family name为F1的TTL为180天)
6:查看表是否存在
exists 'lushuang_test'
7:清空表(表还存在
truncate 'lushuang_test'(先将表disable,再drop the table,最后creating table)
8:查看表有多少行
count 'lushuang_test'
9:权限管理- 给root用户分配对表lushuang_test有读写权限(默认权限:"RWXCA")
READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
grant 'root','RW','lushuang_test'
10:权限管理-查看表lushuang_test的权限
user_permission 'lushuang_test'
11:权限管理-收回root用户在表lushuang_test上的权限
revoke 'root','lushuang_test'
12:向表中添加数据
给表lushuang_test添加一行记录:rowkey为rowkey001,family name:F1,column name:col1,value:value1
put'lushuang_test','rowkey001','F1:col1','value1'
向同一个rowkey中将两个列族都插入数据
put 'lushuang_test','rowkey002','F1:col2','value2'
put 'lushuang_test','rowkey002','F2:col2','value2'
13:查询数据
查看表lushuang_test,rowkey001中的F1下的col1的值
get 'lushuang_test','rowkey001','F1:col1'
14:查看表中前2行的数据
scan 'lushuang_test',{LIMIT=>2}
15:查询表中的数据行
interval设置多少行显示一次以及对应的rowkey(默认是1000);cache每次去取的缓冲区大小(默认是10),调整该参数可以提高查询速度
查询表lushuang_test的行数,每一百条显示一次,缓存区为500
count 'lushuang_test',{INTERVAL=>100,CACHE=>500}
16:删除数据-删除行中的某个列值
删除表lushuang_test,rowkey001中的F1:col1的数据
delete 'lushuang_test','rowkey001','F1:col1'
删除表lushuang_test,rowkey001的数据
delete 'lushuang_test','rowkey001'
清空表--上面7条
17::限制查找条件
scan 'lushuang_test',{COLUMN=>'F1:col2'}
scan 'lushuang_test',{COLUMN=>['F1','F2']}
scan 'lushuang_test',{TIMERANGE=>[1499995564240,1499995590248]}
18:过滤 -- filter
scan 'lushuang_test',{FILTER=>"PrefixFilter('rowkey002')"} --只能写前缀
18.1:过滤任意rowkey
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.filter.RowFilter
-------以上三个导入语句可以一起导入
scan 'lushuang_test', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('111'))} ----括号里面的可以随意些rowkey的其中一部分字段
18.2:值的过滤:
value值=(等于)value2的
scan 'lushuang_test',{FILTER=>"ValueFilter(=,'binary:value2')"}
value值包含value2的,value值包含value的
scan 'lushuang_test',{FILTER=>"ValueFilter(=,'substring:value2')"}
scan 'lushuang_test',{FILTER=>"ValueFilter(=,'substring:value')"}