CGFT考点:HBase系统架构包括什么?HBase的系统架构包括客户端、Zookeeper服务器、Master主服务器、Region服务器。需要说明的是,HBase一般采用HDFS作为底层数据存储,因此,图4-9中加入了HDFS和Hadoop。

CGFT

1.客户端

客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程。HBase客户端使用HBase的RPC机制与Master和Region服务器进行通信,其中,对于管理类操作,客户端与Master进行RPC,而对于数据读写类操作,客户端则会与Region服务器进行RPC。

2.Zookeeper服务器

Zookeeper服务器并非一台单一的机器,可能是由多台机器构成的集群来提供稳定可靠的协同服务。Zookeeper能够很容易地实现集群管理的功能,如果有多台服务器组成一个服务器集群,那么必须要一个“总管”知道当前集群中每台机器的服务状态,一旦某台机器不能提供服务,集群中其他机器必须知道,从而做出调整重新分配服务策略。同样,当增加集群的服务能力时,就会增加一台或多台服务器,同样,也必须让“总管”知道。

在HBase服务器集群中,包含了一个Master和多个Region服务器,Master就是这个HBase集群的“总管”,它必须知道Region服务器的状态。Zookeeper就可以轻松做到这一点,每个Region服务器都需要到Zookeeper中进行注册,Zookeeper会实时监控每个Region服务器的状态并通知给Master,这样,Master就可以通过Zookeeper随时感知到各个Region服务器的工作状态。

Zookeeper不仅能够帮助维护当前的集群中机器的服务状态,而且能够帮助选出一个“总管”,让这个总管来管理集群。HBase中可以启动多个Master,但是,Zookeeper可以帮助选举出一个Master作为集群的总管,并*在任何时刻总有*一个Master在运行,这就避免了Master的“单点失效”问题。

CGFT

Zookeeper中保存了-ROOT-表的地址和Master的地址,客户端可以通过访问Zookeeper获得-ROOT-表的地址,并*终通过三级寻址找到所需的数据。Zookeeper中还存储了HBase的模式,包括有哪些表,每个表有哪些列族。

3. Master

服务器Master主要负责表和Region的管理工作。

·管理用户对表的增加、删除、修改、查询等操作。

·实现不同Region服务器之间的负载均衡。

·在Region分裂或合并后,负责重新调整Region的分布。

对发生故障失效的Region服务器上的Region进行迁

客户端访问HBase上数据的过程并不需要Master的参与,客户端可以访问Zookeeper获取-ROOT-表的地址,并*终到达相应的Region服务器进行数据读写,Master仅仅维护着表和Region的元数据信息,因此,负载很低。

任何时刻,一个Region只能分配给一个Region服务器。Master维护了当前可用的Region服务器列表,以及当前哪些Region分配给了哪些Region服务器,哪些Region还未被分配。当存在未被分配的Region,并且有一个Region服务器上有可用空间时,Master就给这个Region服务器发送一个请求,把该Region分配给它。Region服务器接受请求并完成数据加载后,就开始负责管理该Region对象,并对外提供服务。

4.Region服务器

Region服务器是HBase中*核心的模块,负责维护分配给自己的Region,并响应用户的读写请求。HBase一般采用HDFS作为底层存储文件系统(见图4-9),因此,Region服务器需要向HDFS文件系统中读写数据。采用HDFS作为底层存储,可以为HBase提供可靠稳定的数据存储,HBase自身并不具备数据复制和维护数据副本的功能,而HDFS可以为HBase提供这些支持。当然,HBase也可以不采用HDFS,而是使用其他任何支持Hadoop接口的文件系统作为底层存储,比如本地文件系统或问计算环境中的AmazonS3。