hbase创建表_HBase的读写和javaAPI的使用

一、hbase系统管理表

hbase:namespace,记录了hbase中所有namespace的信息 ,当前系统下有哪些namespace信息

scan 'hbase:namespace'

7a57a4b3d51b675f52c71722b076eb31.png

hbase:meta,记录了region信息

scan 'hbase:meta'

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

在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

在pom.xml中添加hbase依赖

       
            org.apache.hbase
            hbase-server
            1.2.1
        
 
        
            org.apache.hbase
            hbase-client
            1.2.1
        
5170bd7e9f98c491fb9bbf0f9215188f.png

创建运行类

5f70b6547b7a2f27e57133b19f863e83.png

最终需要导入的包

53bdb1184403dade5bb6d1e8f73df927.png

创建以下方法

eaf22967142dd363cbc2dbbefae1596b.png

完成表创建

在hbase-site.xml中的配置信息

d60e82c4e11706ac4edd8b671dd717e0.png

编写方法

f2e650f7a3653d05ff90d8760a4cf1bc.png

运行代码

d9d17f0715289918f02211092b5ca4cb.png
dea0414135f92426ae02b71762ae499e.png

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

9caf1dedffce0e8bf744831d11049979.png

创建表

7ad73ef284a16e3a13cb88dcf336ebe4.png

运行下代码

718b29b773623edae91f23726e6c72b4.png

查看下

2478d71e34eab2232514c42a53fd75f3.png

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

ecdd49b8cb6d8799056e439baf1edc4d.png

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

43958d9c48665aa71d4ffebb1ad3308b.png

运行测试

8d03c9d02185e7e30285a7cf86b1e06d.png

删除表(代码)

f9de917ca385148dbd1ca2c6fb6a5cf2.png

运行查看下,表已删除

f3606526907c7062db9df6814dabd18d.png

添加(代码)

7b0822aa4e1ec8ce803968035d4b14e1.png

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

1ab1aa106812e38d151b1161b3550a93.png

删除数据(代码)

cfb9d7437211473782f935adf711a82e.png

下面这种是筛选删除

790ea02bbdc033a4622468f5cf5cffab.png

运行查看,数据已空

8cd2bbe2548bc5640da6db2a983ee6f7.png

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

f0549e14878f3a55a7ce3c1a6915d73e.png

结果查看(控制台)

f330606c97d249bbddbc4979f26fd9f3.png

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

613cb96c6a07f87d1442c8d66857158a.png

结果查看

0381fb649f4e24cf4ea363936da2d242.png
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值