微信小程序怎么做网站上海网站推广系统
HBase属于Hadoop生态系统,采用Master/Slave架构搭建集群,由一下类型节点组成:HMaster节点、HRegionServer节点、ZooKeeper集群,而在底层,它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等,总体结构如下:
从HBase的架构图上可以看出,HBase中的组件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,理解这些组件的作用有助于我们更好地学习和应用Hbase。
1.Client的作用
1.1 包含访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息1.2 HBase Client通过RPC方式和HMaster、HRegionServer通信
2.Zookeeper的作用
2.1 实现HMaster主从节点的failover,集群高可用;2.2 存储所有Region的寻址入口;2.3 实时监控Region server的上线和下线信息。并实时通知给master;2.4 存储HBase的schema和table元数据;2.5 通过选举,保证任何时候,集群中只有一个master,Master与RegionServers 启动时会向ZooKeeper注册。
3.HMaster的作用
3.1 为HRegionServer分配region;3.2 管理HRegionServer实现其负载均衡;3.3 发现失效的Region server并重新分配其上的region;3.4 HDFS上的垃圾文件回收;3.5 实现DDL操作,处理schema更新请求。
4.HRegionServer的作用
4.1 存放和管理本地HRegion,并负责切分正在运行过程中变的过大的region;4.2 维护master分配给他的region,处理对这些region的io请求。(ps:client访问hbase上的数据时不需要master的参与,因为数据寻址访问zookeeper和region server,
而数据读写访问region server。master仅仅维护table和region的元数据信息,而table的元数据信息
保存在zookeeper上,因此master负载很低。)
5.HRegion的作用
5.1 Region是HBase中分布式存储和负载均衡的最小单元;5.2 不同的region可以分别在不同的Region Server上;5.3 Region按大小分隔,每个表一般是只有一个region,当region的某个列族达到一个阈值(默认256M)
时就会分成两个新的region;5.4 Region被分配给哪个Region Server是完全动态透明的。
6.Store的作用
6.1 每一个region由一个或多个store组成,至少是一个store;6.2 hbase会把一起访问的数据放在一个store里面,即为每个 ColumnFamily建一个store,
如果有几个ColumnFamily,也就有几个Store;6.3 一个Store由一个memStore和0或者多个StoreFile组成,HBase以store的大小来判断是否需要切分region。
7.MemStore的作用
7.1 memStore 是放在内存里的,其保存修改的数据即keyValues;7.2 当memStore的大小达到一个阀值(默认64MB)时,memStore会被flush到文 件,即生成一个快照。
8.StoreFile的作用
8.1 memStore内存中的数据写到文件后就是StoreFile;8.2 StoreFile底层是以HFile的格式保存,即数据保存在hdfs上。
9.HLog的作用
9.1 HLog(WAL log):WAL意为write ahead log,用来做灾难恢复使用,HLog记录数据的所有变更,
一旦region server 宕机,就可以从log中进行恢复;9.2 HLog文件就是一个普通的Hadoop Sequence File,Sequence File的value是key时HLogKey对象,
其中记录了写入数据的归属信息,除了table和region名字外,还同时包括sequence number和timestamp,
timestamp是写入时间,sequence number的起始值为0,或者是最近一次存入文件系统中的sequence number。
Sequence File的value是HBase的KeyValue对象,即对应HFile中的KeyValue。