一、hbase系统管理表
hbase:namespace,记录了hbase中所有namespace的信息 ,当前系统下有哪些namespace信息
scan 'hbase:namespace'

hbase:meta,记录了region信息
scan 'hbase:meta'

二、读写思想
client(get、scan)
rowkey条件
(1)由于rowkey是存储在region上的
(2)判断rowkey在哪个region上
(3)找到region在哪台regionserver上
(4)首先会去meta表中读取信息,找到regionserver
meta也是一张表,也有region和regionserver
desc hbase:meta

在zookeeper中存储了meta表的region信息,可以到zookeeper客户端上去看
读的流程
(1)根据表名和rowkey(start-end范围)找到对应的region
(2)在zookeeper中存储了meta表的region信息
(3)从meta表中获取相应的region信息
(4)找到对应的regionserver
(5)找到对应的region
写的流程
(1)根据表名和rowkey(start-end范围)找到对应的region
(2)在zookeeper中存储了meta表的region信息
(3)从meta表中获取相应的region信息
(4)找到对应的regionserver(不是直接往region上写的,先写到wal再写到memstore)
WAL(预写日志)
memstore(内存中)满了后会flush成storefile
(5)当多个storefile达到一定大小以后,会进行compaction,合并一个大的storefile
(6)当大的storefile达到一定大小以后,会进行split,等分新的region
三、hbase Java API
启动Eclipse,创建Maven项目

在pom.xml中添加hbase依赖
org.apache.hbase
hbase-server
1.2.1
org.apache.hbase
hbase-client
1.2.1

创建运行类

最终需要导入的包

创建以下方法

完成表创建
在hbase-site.xml中的配置信息

编写方法

运行代码


在hbase中查看,命名空间已经创建了

创建表

运行下代码

查看下

为了后续方便,我们更改下代码

将之前的代码做一下变化(代码)

运行测试

删除表(代码)

运行查看下,表已删除

添加(代码)

运行查看下(新创建了一个空间和表格),数据已添加

删除数据(代码)

下面这种是筛选删除

运行查看,数据已空

数据查询(代码)注释部分为筛选

结果查看(控制台)

Scan查看(代码)注释部分为筛选

结果查看
