1、shell操作
1、执行shell命令 $ bin/hbase shell
2、输入help获取帮助信息
3、shell命令行的删除,需要按住ctrl+删除键才可以删除
4、version 获取当前hbase版本
5、status 查看数据库状态
6、exists 't1' 判断表是否存在
7、is_enabled 't1' 判断表是否enable或者disable
8、count 't1' 查看有多少条记录
2、HBase的DDL操作
1.创建namespace create_namespace 'nstest'
2.描述查看namespace的结构 describe_namespace 'nstest'
3.列出当前数据库中的所有namespace list_namespace
4.删除namespace drop_namespace 'nstest2'
5.创建表
示例1: create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}
-》ns1指的就是namespace,t1代表table_name(ns1:t1这样的格式就是唯一确定了一张表)
-》在hbase中=>符号表示等于
-》f指的是列簇,VERSIONS => 5代表同时能够存储的版本数
-》建表时要指定一个列簇,可以指定多个列簇,一个大括号中只能指定一个NAME(变量)
-》一个列簇就是一个大括号
示例2: create 'stu_test','f1'(一个列簇)
create 't1', 'f1', 'f2', 'f3' (多个列簇)
-》在建表的时候可以指定在某个namespace下,比如:ns1:t1,
没有指定就是在默认的数据库下面创建
5.描述表结构 desc 't1'
6.列出namespace中所有的table list
(如果没有指定,则是默认的namespace)
7.删除表:在hbase中表有启用和禁用的状态区分,在删除和修改前需要先禁用,
如果是修改那么完成后需要再启用
先禁用:disable 't1'
然后才能删除:drop 't1'
禁用/启用命令:disable, disable_all / enable, enable_all
8.修改表:凡是要修改表的结构hbase规定,必须先禁用表->修改表->启动表,直接修改会报错
-》删除表中的列簇:alter ‘t1’,{NAME=>'info',METHOD=>'delete'}
-》修改版本存储个数:alter 't1' ,{name=>'info',VERSION=>3}
3、HBase的DML操作
1.添加数据 put 'ns1:t1', 'r1', 'c1', 'value'
-》r1代表rowkey ; c1代表列簇+列 ; value代表具体插入的值
-》put 'nstest:tb1','20170521_10001','info:name','leo'
-》put 'nstest:tb1','20170521_10001','info:age','18'
2.查询数据 get scan
- 》 get 'ns1:t1', 'r1' 单行操作
- 》get 'nstest:tb1','20170521_10001' 指定rowkey
- 》get 'nstest:tb1','20170521_10001','info' 指定列簇进行查询
- 》get 'nstest:tb1','20170521_10001','info:name' 指定某一列查询
- 》 scan 'ns1:t1' 全表扫描
- 》scan 'ns1:t1', {COLUMNS =>['info:name', 'info:age'], LIMIT => 10
STARTROW => '20170521_10001',STOPROW => '20170521_10003'}
- 》STARTROW代表开始的行号,STOPROW代表结束的行号;包头不包尾
- 》LIMIT 表示查询条数;'info:name', 'info:age' 表示列簇和列
3.删除数据 delete deleteall
- 》delete 'nstest:tb1','20170521_10001','info:name'
删除时必须指定列,不能直接删除列簇
- 》deleteall 删除整行 deleteall 'nstest:tb1' , '20170521_10001'
4.截断表 tauncate 't1'
- 》truncate表的处理过程:由于Hadoop的HDFS文件系统不允许直接修改,
所以只能先删除表,再重新创建已达到清空表的目的
4、Split 和 Compact
Split:
-》手动:split 'tb1','bc31bc83af45aab95d5d8a62962b23f5'
-》建表时预设:create ‘tb1’,'f1',SPLIT=>['a','b','c']
Compact:
-》merge_region '759a217c34ad5203801866dab4b6b209',
'939affd918502d5e46792367a0a4a59a', true
-》major_compact ‘t1’
注:put get delete是单行操作;
scan扫描一段范围内的Rowkey,由于rowkey有序从而scan也有序;
get和scan支持各种Filter,将逻辑推给Region Server,以此为基础可以实现复杂的查询;
在单行上可以加锁,具备强一致性;