主从架构的hbase读写经过master进程吗?

1.hbase的整体架构图

在这里插入图片描述
1.hbse是一个高效的、可靠的、可扩展的关系型数据库。
2.hbase的最终存储位置是在hdfs上;具体存储目录可以在配置文件中进行指定
3.hbase很依赖于zookeeper
4.hbase的最基本存储单元是region;每一台服务器,对应都会有一个regionserver;通过regionServer对region进行处理,最终保存在hdfs上
5.通过zookeeper会在集群内部,挑选出一个master,对所有的regionserver进行整体的调度,同时也会对master进行热备。
6.HMaster链接Zookeeper的目得:HMaster需要知道哪些HRegionServere是活的及HRegionServer所在的位置,然后管理HRegionServer。
7.HBase内部是通过DFS client把数据写到HDFS上的
8.每一个HRegionServer有多个HRegion,每一个HRegion有多个Store,每一个Store对应一个列簇。
9.HFile是HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,StoreFile就是对HFile进行了封装,然后进行数据的存储。
10.HStore由MemStore和StoreFile组成。
11.HLog记录数据的所有变更,可以用来做数据恢复。

2.hbase的写数据流程

1.zookeeper中存储了meta表的region信息,从meta表获取相应region信息,然后找到meta表的数据
2.根据namespace、表名和rowkey根据meta表的数据找到写入数据对应的region信息
3.找到对应的regionserver
4.把数据分别写到HLog和MemStore上一份
5.MemStore达到一个阈值后则把数据刷成一个StoreFile文件。若MemStore中的数据有丢失,则可以总HLog上恢复
6.当多个StoreFile文件达到一定的大小后,会触发Compact合并操作,合并为一个StoreFile,这里同时进行版本的合并和数据删除。
7.当Compact后,逐步形成越来越大的StoreFIle后,会触发Split操作,把当前的StoreFile分成两个,这里相当于把一个大的region分割成两个region。

3.hbase的读数据流程

  1. zookeeper中存储了meta表的region信息,所以先从zookeeper中找到meta表region的位置,然后读取meta表中的数据。meta中又存储了用户表的region信息。
  2. 根据namespace、表名和rowkey在meta表中找到对应的region信息
  3. 找到这个region对应的regionserver
  4. 查找对应的region
  5. 先从MemStore找数据,如果没有,再到StoreFile上读(为了读取的效率)

因此,主从架构的hbase读写没有经过master进程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值