白话HBase-5分钟了解HBase架构
01-5分钟了解HBase架构
1.分布式的
HBase是一个分布式存储引擎:那么它是由很多Server组成的,RegionServer可以达到几千上完个节点
2.增加管理者HMaster
这么多Server,需要一个管理者,来server列表,table信息,数据如何分布等元数据
所以有了HMaster,为了防止单个HMaster挂掉导致进群无法服务,所以还要启动一个backup的HMaster
3.管理者的高可用HMaster
两个HMaster如何在一个挂掉之后切换到另外一个呢?
通过Zookeeper的临时节点。
HBase的元数据表位置,也要存储在zookeeper的节点中,这样如果整个集群重启,能先通过zk加载最近本的meta信息,然后再加载其他的依赖meta的信息。
客户端通过请求zk的meta节点,知道元数据表的位置,然后再访问meta表,得知数据分布
RegionServer 通过注册zookeeper 的 watcher。来感知Zookeeper节点的数据更新,删除,新建等变化
因此HBase中还用到Zookeeper。
(HBase用到了Zookeeper的临时节点特性,持久化类型节点,watcher)
4.底层存储
底层数据如何保证不丢失?HBase直接利用了HDFS的三副本特性,进行底层文件存储
5.客户端请求
(1).客户端请求zookeeper,获取hbase meta表位置并缓存
(2).从meta表获取需要操作的表的数据位置在具体哪个RegionServer
(3).连接具体RegionServer进行数据读写
(4).如果数据没在RegionServer的缓存里,RegionServer会和HDFS交互(HDFS的api),从HDFS进行数据读取