这篇文章将为大家详细讲解有关 HBase 中常用 Shell 操作有哪些,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
HBase 为用户提供了一个 Shell 终端进行交互操作,通过“help get”命令可以获得帮助信息。
【查询相关】
1. 进入 hbase shell console
$HBASE_HOME/bin/hbase shell
2. 查看有哪些表
list
3. 查看全表数据
scan tablename
查看 LIMIT 数据
scan tablename ,{LIMIT= 10}
4. 查看表描述
describe table
5. 查看状态
hbase(main):004:0 status
30 servers, 0 dead, 242.7000 average load
6. 获得单行值
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
关于“HBase 中常用 Shell 操作有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。