HBase中常用Shell操作有哪些

84次阅读
没有评论

这篇文章将为大家详细讲解有关 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 操作有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。