欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

HBase之体系结构(Architecture)

程序员文章站 2022-06-16 07:53:12
...

HBase在分布式部署上采用master/slave的方式,主要包含3大功能组件,分别是:RegionServer、MasterServer和ClientLibrary在分布式

HBase在分布式部署上采用master/slave的方式,主要包含3大功能组件,分别是:RegionServer、MasterServer和ClientLibrary

在分布式存储上使用的是Hadoop的HDFS子框架

分布式计算功能基于Hadoop的MapReduce实现

1.Region

Region作为HBase的分布式存储单元包含了一组Row,这些Row的key值在索引排序上是连续的,因此在分布式存储的时候,RowKey的定义非常重要,要确保具有相同性质的数据是存储在同一台机器上,最好的方法就是为他们指定相似的RowKey值

2.RegionServer

在HBase中,RegionServer充当Slave角色,,负责与Client进行交互,进行相关的读写操作。

3.MasterServer

MasterServer充当master主要有以下职责:

(1).负责将Region分配给RegionServer

(2).动态加载或卸载RegionServer

(3).对RegionServer实现负载均衡

(4).管理Schema定义

系统中可能会存在多个master机器,但是这些机器并不会同时运行,而是处于一个竞争的状态,当正在运行的master机器出现故障的时候,系统会转移到其他master来接管。

在HBase部署中,Client是不与Master进行交互的,所有的读写操作都是通过RegionServer来完成,master在其中起到了负载均衡的作用,当某一个RegionServer加载量较大时,master可以将相应的Region进行重新的切片部署,将压力分散到多台机器上。

4.ClientLibrary

客户端类库,与RegionServer进行通信,并且还会缓存RegionServer和它所存储的Region地址,加快下次访问效率。

另外,当master机器地址发生变动时,client通过ZooKeeper来查找定位新的master地址,ZooKeeper存储了所有机器的地址信息,客户端需要有ZooKeeper的连接环境(将habse-site.xml加入到客户端classpath中)

5.CatelogTable

HBase预定义了两张表格用于保存数据的分布式存储地址,分别是 -ROOT- 和 .META.

-ROOT-存储了.META.数据的访问地址

.META.存储了用户Region的访问地址

这样ClientLibrary可通过-ROOT-遍历到任何Region的地址

HBase之体系结构(Architecture)