一、hbase系统管理表
hbase:namespace,记录了hbase中所有namespace的信息 ,当前系统下有哪些namespace信息
scan 'hbase:namespace'
![7a57a4b3d51b675f52c71722b076eb31.png](https://img-blog.csdnimg.cn/img_convert/7a57a4b3d51b675f52c71722b076eb31.png)
hbase:meta,记录了region信息
scan 'hbase:meta'
![c6d03f822b032e2a72418cd08414650e.png](https://img-blog.csdnimg.cn/img_convert/c6d03f822b032e2a72418cd08414650e.png)
二、读写思想
client(get、scan)
rowkey条件
(1)由于rowkey是存储在region上的
(2)判断rowkey在哪个region上
(3)找到region在哪台regionserver上
(4)首先会去meta表中读取信息,找到regionserver
meta也是一张表,也有region和regionserver
desc hbase:meta
![bfda75139acde0ea8fba7c1f065b4faa.png](https://img-blog.csdnimg.cn/img_convert/bfda75139acde0ea8fba7c1f065b4faa.png)
在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项目
![a1ad7ca7bab5b67b47febc1351182b41.png](https://img-blog.csdnimg.cn/img_convert/a1ad7ca7bab5b67b47febc1351182b41.png)
在pom.xml中添加hbase依赖
org.apache.hbase
hbase-server
1.2.1
org.apache.hbase
hbase-client
1.2.1
![5170bd7e9f98c491fb9bbf0f9215188f.png](https://img-blog.csdnimg.cn/img_convert/5170bd7e9f98c491fb9bbf0f9215188f.png)
创建运行类
![5f70b6547b7a2f27e57133b19f863e83.png](https://img-blog.csdnimg.cn/img_convert/5f70b6547b7a2f27e57133b19f863e83.png)
最终需要导入的包
![53bdb1184403dade5bb6d1e8f73df927.png](https://img-blog.csdnimg.cn/img_convert/53bdb1184403dade5bb6d1e8f73df927.png)
创建以下方法
![eaf22967142dd363cbc2dbbefae1596b.png](https://img-blog.csdnimg.cn/img_convert/eaf22967142dd363cbc2dbbefae1596b.png)
完成表创建
在hbase-site.xml中的配置信息
![d60e82c4e11706ac4edd8b671dd717e0.png](https://img-blog.csdnimg.cn/img_convert/d60e82c4e11706ac4edd8b671dd717e0.png)
编写方法
![f2e650f7a3653d05ff90d8760a4cf1bc.png](https://img-blog.csdnimg.cn/img_convert/f2e650f7a3653d05ff90d8760a4cf1bc.png)
运行代码
![d9d17f0715289918f02211092b5ca4cb.png](https://img-blog.csdnimg.cn/img_convert/d9d17f0715289918f02211092b5ca4cb.png)
![dea0414135f92426ae02b71762ae499e.png](https://img-blog.csdnimg.cn/img_convert/dea0414135f92426ae02b71762ae499e.png)
在hbase中查看,命名空间已经创建了
![9caf1dedffce0e8bf744831d11049979.png](https://img-blog.csdnimg.cn/img_convert/9caf1dedffce0e8bf744831d11049979.png)
创建表
![7ad73ef284a16e3a13cb88dcf336ebe4.png](https://img-blog.csdnimg.cn/img_convert/7ad73ef284a16e3a13cb88dcf336ebe4.png)
运行下代码
![718b29b773623edae91f23726e6c72b4.png](https://img-blog.csdnimg.cn/img_convert/718b29b773623edae91f23726e6c72b4.png)
查看下
![2478d71e34eab2232514c42a53fd75f3.png](https://img-blog.csdnimg.cn/img_convert/2478d71e34eab2232514c42a53fd75f3.png)
为了后续方便,我们更改下代码
![ecdd49b8cb6d8799056e439baf1edc4d.png](https://img-blog.csdnimg.cn/img_convert/ecdd49b8cb6d8799056e439baf1edc4d.png)
将之前的代码做一下变化(代码)
![43958d9c48665aa71d4ffebb1ad3308b.png](https://img-blog.csdnimg.cn/img_convert/43958d9c48665aa71d4ffebb1ad3308b.png)
运行测试
![8d03c9d02185e7e30285a7cf86b1e06d.png](https://img-blog.csdnimg.cn/img_convert/8d03c9d02185e7e30285a7cf86b1e06d.png)
删除表(代码)
![f9de917ca385148dbd1ca2c6fb6a5cf2.png](https://img-blog.csdnimg.cn/img_convert/f9de917ca385148dbd1ca2c6fb6a5cf2.png)
运行查看下,表已删除
![f3606526907c7062db9df6814dabd18d.png](https://img-blog.csdnimg.cn/img_convert/f3606526907c7062db9df6814dabd18d.png)
添加(代码)
![7b0822aa4e1ec8ce803968035d4b14e1.png](https://img-blog.csdnimg.cn/img_convert/7b0822aa4e1ec8ce803968035d4b14e1.png)
运行查看下(新创建了一个空间和表格),数据已添加
![1ab1aa106812e38d151b1161b3550a93.png](https://img-blog.csdnimg.cn/img_convert/1ab1aa106812e38d151b1161b3550a93.png)
删除数据(代码)
![cfb9d7437211473782f935adf711a82e.png](https://img-blog.csdnimg.cn/img_convert/cfb9d7437211473782f935adf711a82e.png)
下面这种是筛选删除
![790ea02bbdc033a4622468f5cf5cffab.png](https://img-blog.csdnimg.cn/img_convert/790ea02bbdc033a4622468f5cf5cffab.png)
运行查看,数据已空
![8cd2bbe2548bc5640da6db2a983ee6f7.png](https://img-blog.csdnimg.cn/img_convert/8cd2bbe2548bc5640da6db2a983ee6f7.png)
数据查询(代码)注释部分为筛选
![f0549e14878f3a55a7ce3c1a6915d73e.png](https://img-blog.csdnimg.cn/img_convert/f0549e14878f3a55a7ce3c1a6915d73e.png)
结果查看(控制台)
![f330606c97d249bbddbc4979f26fd9f3.png](https://img-blog.csdnimg.cn/img_convert/f330606c97d249bbddbc4979f26fd9f3.png)
Scan查看(代码)注释部分为筛选
![613cb96c6a07f87d1442c8d66857158a.png](https://img-blog.csdnimg.cn/img_convert/613cb96c6a07f87d1442c8d66857158a.png)
结果查看
![0381fb649f4e24cf4ea363936da2d242.png](https://img-blog.csdnimg.cn/img_convert/0381fb649f4e24cf4ea363936da2d242.png)