1、HBase写入流程:
Client会先访问zookeeper,得到对应的RegionServer地址
Client对RegionServer发起写请求,RegionServer接受数据写入内存
当MemStore的大小达到一定的值后,flush到StoreFile并存储到HDFS
2、Hbase读流程:
Client会先访问zookeeper,得到对应的RegionServer地址
Client对RegionServer发起读请求
当RegionServer收到client的读请求后,先扫描自己的Memstore,再扫描BlockCache (加速读内容缓存区)如果还没找到则StoreFile中读取数据,然后将数据返回给Client
3、总结
从上述的流程中我们可以看出数据的读写操作和Hmaster没有半毛钱关系
4、Hbase的模块协作
首先我们提出三个问题:
HBase启动时发生了什么?
当RegionServer失效后会发生什么?
当HMaster失效后会发生什么?
1)、HBase启动:
HMaster启动,注册到Zookeeper,等待RegionServer汇报
RegionServer注册到Zookeeper,并向HMaster汇报
对各个RegionServer (包括失效的)的数据进行整理,分配Region和meta信息。
2)、RegionServer失效:
HMaster将失效RegionServer上的Region分配到其他节点
HMaster更新hbase: meta表以保证数据正常访问
3)、HMaster失效:
处于Backup状态的其他HMaster节点推选出一个转为Active状态
数据能正常读写,但是不能创建删除表,也不能更改表结构