2.1 HBase基本架构

下面将介绍HBase基本架构中涉及的一些概念,如图2-1所示。

图2-1 HBase基本架构

从图2-1中可以看出,HBase中有几个重要角色,分别是:

1)Client(客户端)

2)RegionServer(区域服务器)

3)Master(主服务器)

4)ZooKeeper

5)HDFS(Hadoop分布式文件系统)

接下来逐一介绍这些角色。

1. Client

Client不仅提供了访问HBase的接口,还维护对应的Cache(缓存)来加快对HBase的访问。Client维护的缓存主要是缓存Region的位置信息。

2. RegionServer

RegionServer为Region的管理者,部署在一台物理服务器上。一般一个HBase集群有一个Master服务器和几个RegionServer服务器。Master服务器负责维护表结构信息,RegionServer服务器则负责存储数据。当客户端从ZooKeeper获取RegionServer的地址后,会直接从RegionServer获取数据。RegionServer的主要功能如下:

1)维护Region,处理对Region的I/O(输入/输出)请求。

2)负责切分在运行过程中变得过大的Region,并重新对Region进行分配。

3)对表数据进行增加、修改、删除操作。

3. Master

Master是所有RegionServer的管理者。Master负责各种协调工作,对表架构进行创建、修改、删除等操作,还负责把Region分配到每个RegionServer上,以及监控每个RegionServer的状态。在HBase中,即使Master宕机了,集群依然可以正常地运行,客户端依然可以存储和删除数据或进行数据查询,只是不能进行创建表的操作,如图2-2所示。

图2-2 HBase基本架构中的Master

Master的主要功能如下:

1)为RegionServer分配Region。

2)负责RegionServer的负载均衡。

3)发现失效的RegionServer并重新分配其上的Region。

4)管理用户对表架构的增删改查操作。

4. ZooKeeper

ZooKeeper是一个开放源码的分布式应用程序协调服务,是谷歌公司Chubby的一个开源的实现,是Hadoop和HBase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

在HBase中通过ZooKeeper来做Master的高可用、RegionServer的监控以及集群配置的维护等工作。在生产环境中,为了防止ZooKeeper单节点宕机问题的发生,ZooKeeper也是以多节点集群的方式参与在HBase架构中,如图2-3所示。

图2-3 HBase基本架构中的ZooKeeper集群

ZooKeeper在HBase中的主要功能如下:

1)ZooKeeper解决Master的单点故障问题。

2)HBase管理ZooKeeper实例,比如,启动或者停止ZooKeeper。

3)存储所有Region的寻址入口。

4)实时监控RegionServer的上线和下线信息,并实时通知给Master。

5. HDFS

HDFS为HBase提供最终的底层数据存储服务,同时为HBase提供高可用的支持,如图2-4所示。

图2-4 HBase基本架构中的HDFS