HBase为用户提供了一个Shell终端进行交互操作,通过“help get”命令可以获得帮助信息。
【查询相关】
1. 进入hbase shell console $HBASE_HOME/bin/hbase shell2. 查看有哪些表
list3. 查看全表数据
scan 'tablename' 查看LIMIT数据 scan 'tablename',{LIMIT=>10}4. 查看表描述
describe 'table'5. 查看状态
hbase(main):004:0> status 30 servers, 0 dead, 242.7000 average load6. 获得单行值
get 'tablename' ,'rowkey'(注意有个逗号) 获取单行某个列簇的值: get 'tablename','rowkey','family' 获取单行某个列簇某一列的值: get 'tablename','rowkey','family:column' 通过timestamp获取两个版本的数据: get 'tablename' ,'rowkey',{COLUMN=>'family:column',TIMESTAMP=>1321586238965} 通过rowKey的前缀查询单条记录: scan 'YK.VVCOUNT_VID_LIST',{FILTER=>"PrefixFilter('-1001808375')"} 结果:-1001808375_199894794 column=v:vids, timestamp=1457892147304, value=199503532,199503519 7. 查看表的总记录数 count 'tablename'8. 判断表是否disable
is_disabled 'tablename'9. 判断表是否enable
is_enabled 'tablename'10. 判断表是否存在
exists 'tablename'11. 获取当前count
【添加/创建】
1. 创建表 (1) 最简单 create 'TD.VVCOUNT_PLAYLIST_VV', {NAME => 'v'}(2) 数据7天过期
create 'TD.VVCOUNT_DAY_PLAYLIST_VV', {NAME => 'v', BLOOMFILTER => 'ROWCOL', COMPRESSION => 'SNAPPY', TTL => '604800', BLOCKSIZE => '32768', METADATA => {'ENCODE_ON_DISK' => 'true'}} 精简版: create 'YK.VVCOUNT_VIDEO_REAL_VV', {NAME => 'v', TTL => '604800'}(3) 包含多个列族
create 'user','v','f'2. 插入数据
put 'testtable' , 'myrow-1' , 'colfaml:q1' , 'value-1' put 'testtable' , 'myrow-2' , 'colfaml:q2' , 'value-2' put 'testtable' , 'myrow-2' , 'colfaml:q3' , 'value-3' 可以看到有两个行键myrow-1和myrow-2,所以有两行。colfaml为列簇名称,q1、q2、q3为列名称【修改】
1. 更新一条记录 put 'member','scutshuxue','info:age' ,'99' 【删除】 1. drop 表 disable 'tablename' drop 'tablename'2. 清空整张表
truncate 'tablename'3. 删除整行
deleteall 'tablename','rowkey'4. 删除一个列簇
先将表disable(如果表中之前有数据的话,会把数据清空 disbale 'tablename' is_enabled 'tablename' alter 'tablename' ,{NAME=>'m_id',METHOD=>'delete'} enable 'tablename'5. 删除某行中的某列
delete 'testtable' , 'myrow-2' , 'colfaml:q2'
【管理相关】
1. Region管理
(1) 移动Region
# 语法:move 'encodeRegionName', 'ServerName'
# encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表 # 示例 hbase(main)>move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'
(2) 开启/关闭Region
# 语法:balance_switch true|false
hbase(main)> balance_switch(3) 手动split
# 语法:split 'regionName', 'splitKey'
(4) 手动触发major compaction
#语法:
#Compact all regions in a table: #hbase> major_compact 't1' #Compact an entire region: #hbase> major_compact 'r1' #Compact a single column family within a region: #hbase> major_compact 'r1', 'c1' #Compact a single column family within a table: #hbase> major_compact 't1', 'c1'2. 权限管理
(1) 查看权限
# 语法:user_permission <table>
# 例如,查看表t1的权限列表 hbase(main)> user_permission 't1'(2) 分配权限
# 语法 : grant <user> <permissions> <table> <column family> <column qualifier> 参数后面用逗号分隔
# 权限用五个字母表示: "RWXCA". # READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A') # 例如,给用户‘test'分配对表t1有读写的权限, hbase(main)> grant 'test','RW','t1'(3) 回收权限
# 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>
# 例如,收回test用户在表t1上的权限 hbase(main)> revoke 'test','t1'
更多精彩内容,请访问: