如何全面理解HBase架构?在深入了解HBase之前,要了解其架构的组件。从物理结构上讲,HBase由三种类型的服务器构成主从式架构。Region Servers为数据的读取和写入提供服务。当访问数据时,客户端直接和Region Servers通信。Region的分配,DDL (create, delete tables)操作有HBase Master进程处理。Zookeeper是HDFS的一部分,维护着一个活动的集群。
在Hadoop DataNode中存储着Region Server所管理的数据。所有的HBase数据存储在HDFS的文件中。Region Server和HDfs DataNode并置在一起,这使得RegionServers所服务的数据具有数据局部性(使数据接近需要的位置)。HBase数据在写入时是本地数据,但是当Region移动时,在压实之前它不是本地数据。NameNode维护构成文件的所有物理数据块的元数据信息。
Regions
HBase表是按照rowkey范围水平划分为“Regions”.Region包含表中start key和end key之间的所有行。Region Server将Regions分配到集群的节点中,并对数据的读取和写入提供服务。单个Redion Server可服务大约1000个region。
ZooKeeper: The Coordinator
HBase使用Zookeeper做为分布式协调服务来维护及群众server的状态。Zookeeper维护处于活状态并可使用的Severs,并提供Server故障通知。尚学堂•百战程序员陈老师指出Zookeeper使用共识来保证共同共享的状态。请注意,应该有三到五台机器达成共识。
Zookeeper用于协调分布式系统成员的共享状态信息。Region Server和active HMaster通过会话链接到Zookeeper.ZooKeeper通过心跳维护会话活动的临时节点。 每个Region Server创建一个临时节点。HMaster监控这些节点以发现可用的region servers,并监控这些节点的服务器故障。
HMaster监控这些节点以发现可用的区域服务器,并监控这些节点的服务器故障。HMasters争夺创造一个短暂的节点。Zookeeper确定第一个并使用它来确保只有一个主站处于活动状态。 活动HMaster将心跳发送到Zookeeper,非活动HMaster将监听活动HMaster故障的通知。如果region server或者actice HMaster未能发送心跳信号,则会话过期并删除相应的临时节点。Listeners的更新在收到节点删除的通知后。Active HMaster监听region servers,并在region servers出现故障时进行恢复。Inactive HMaster监听active HMaster故障,并且如果active HMaster故障时,inactive HMaster编程active状态。
如何全面理解HBase架构?以上的内容简单的介绍了HBase一部分组件的功能,今后还会继续介绍其他的组件及应用。