文档章节

HBase–常用Shell操作篇

Circleblog
 Circleblog
发布于 2016/07/21 17:05
字数 725
阅读 20
收藏 0

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'

 

更多精彩内容,请访问:圈里圈外

© 著作权归作者所有

Circleblog
粉丝 3
博文 11
码字总数 15216
作品 0
海淀
程序员
私信 提问
hbase 数据库简介安装与常用命令的使用

一:hbase 简介与架构功能 二:hbase 安装与配置 三:hbase 常见shell 命令操作 一:hbase 简介与架构功能 1.1 为什么要使用hbase 数据库 1.2 hbase 简介: 1.3 HBase与Hadoop的对比 1.4 HB...

flyfish225
2018/04/12
0
0
Apache HBase 1.1.13 发布,分布式数据库

Apache HBase 1.1.13 发布了,这是分支1.1的最终版本!HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模...

周其
2017/12/15
623
2
HBase应用实践专场-HBase问题排查思路

HBCK - HBCK检查什么? (1)HBase Region一致性 集群中所有region都被assign,而且deploy到唯一一台RegionServer上 该region的状态在内存中、hbase:meta表中以及zookeeper这三个地方需要保持一...

HBase技术社区
2018/09/03
0
0
Apache HBase 2.1.1 发布,分布式数据库

Apache HBase 2.1.1 发布了,HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用 HBase 技术可在廉价 PC Server 上搭建起大规模结构化存储集群。 HB...

达尔文
2018/11/02
1K
0
HBase基本操作-shell使用

这篇在学习之前,需要搭建好HBase集群,当你的集群搭建好了,那么就开始学习HBase的shell操作把~ 这篇文章将只会介绍使用频率最高的shell命令,这些没有什么难度,只是一些熟练问题,我的HBase版本...

期待l
2018/12/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部