物理架构
HBase采用主从架构形式,主要组成:HMaster,HRegionServer,HRegion,ZooKeeper,DFS Client。
物理架构各部分讲解
HMaster:
1.是HBase集群的主节点,可以配置多个(用于备用HMaster backup),实现HA
2.【存储元数据】,同时处理元数据的变更
3.负责RegionServer监视,负载均衡(分裂split)和故障迁移(容灾性)
4.借助ZooKeeper,将元数据信息(meta)发送给客户端
HRegionServer:
1.负责管理HBase的实际数据
2.维护HLog
3.刷新缓存至HDFS
4.负责处理HRegion及其切片
5.执行Compact操作【收缩操作】
HRegion:分区。
补充点:
1.Region是HBase集群分布数据的最小单位
2.多个同样的Region不可存在于同一个RegionServer下
HLog:WAL日志
Store:存储区
MemStore:相当于缓存区
StoreFile:对HDFS上文件(HFile)的包装,其存储了映射信息【HBase存储位置,DataNode位置…】
HFile:存储于HDFS上的文件,相当于一个block
读取操作:
ZooKeeper与HMaster和备用的HMaster backup之间都具有心跳。
具体过程讲解:
1.客户端通过zookeeper找到HMaster【定期】通过心跳发送过来的表的元数据信息【hbase:meta】。
2.客户端获取元素信息后,就会得知表在哪台或哪几台HRegionServer上,就可直接去读取HRegionServer上的数据。
写入操作:基于内存(MemStore)写
ZooKeeper与HMaster和备用的HMaster backup之间都具有心跳。
具体过程讲解:
客户端进行建表操作后,表会在一台机器上形成一个Region【Region为基本单位】。客户端会通过put操作先让数据进入HLog中去【容灾性:便于恢复】,然后再进入Region中的MemStore中去,就此写入的操作完成。【只需写到内存(MemStore)中就算完成操作了】
后续过程补充:可以进行配置来控制MemStore的溢写条件【一定时间间隔溢出一次(3s左右)或者一定数量溢出一次】。MemStore溢写一次形成一个StoreFile,StoreFile包装了HFile。Hfile借助DFS Client写入HDFS中的DataNode中的block上面。
注意:当一个Region写满后,会进行**<伸缩机制>**,在另一台机器上形成一个Region继续书写。
逻辑架构(数据层面)
HBase表的逻辑结构图:
名词解释:
- Column Family(列族):HBase中的每个列都归属于某个列族,列族不能改变,一行可有多个列族,一个列族可有任意个列。
- Column(列):类似于关系型数据库中的列名。一般都是从属于某个列族,跟列族不一样,这些列都可以动态添加。
- RowKey(行键):行键是HBase记录条目的主键,物理存储时会按照RowKey的字典序排序存储,HBase基于RowKey实现索引。
补充点:行键映射列族,列族映射列
版权归原作者 袖清暮雨 所有, 如有侵权,请联系我们删除。