code搬运工_HBaseClientAPI和架构

2019-04-08  本文已影响0人  自由的灯塔

HBaseClientAPI和架构

Ø Row Key: 行键,Table的主键,Table中的记录按照Row Key排序
Ø Timestamp: 时间戳,每次数据操作对应的时间戳,
可以看作是数据的version number
Ø Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式
存储,用户需要自行进行类型转换。

Ø HBaseConfiguration
对 HBase 进行配置



Ø HTableDescriptor

包含了表的名字极其对应表的列族 image.png
Ø HColumnDescriptor
维护着关于列族的信息,例如版本号,压缩设置等。
它通常在创建表或者为表添 加列族的时候使用。

列族被创建后不能直接修改,只能通过删除然后重新创建的方式。列族被删除的时候,列族里面的数据也会同时被删除。


image.png
Ø HTable
可以用来和 HBase 表直接通信。此方法对于更新操作来说是非线程安全的。
image.png
image.png
Ø Put
用来对单个行执行添加操作
image.png
ØGet
用来获取单个行的相关信息
image.png

ØResult
存储 Get 或者 Scan 操作后获取表的单行值。使用此类提供的方法可以直接获取值 或者各种 Map 结构( key-value 对)


image.png
Ø HTablePool
能够解决HTable存在的线程不安全问题。同一时候通过维护固定数量的HTable对象,能够在程序执行期间复用这些HTable资源对象。
说明:
1. HTablePool能够自己主动创建HTable对象,并且对客户端来说使用上是全然透明的。能够避免多线程间数据并发改动问题。
2. HTablePool中的HTable对象之间是公用Configuration连接的,能够能够降低网络开销。
HTablePool的使用非常easy:每次进行操作前。通过HTablePool的getTable方法取得一个HTable对象,然后进行put/get/scan/delete等操作,最后通过HTablePool的putTable方法将HTable对象放回到HTablePool中。
Ø ResultScanner
存储Get或者Scan操作后获取表的单行值。
使用此类提供的方法能够直接获取值或者各种Map结构( key-value对)。
上一篇 下一篇

猜你喜欢

热点阅读