Hbase写入数据流程

1、Client访问zookeeper,获取元数据存储所在的regionserver

2、通过刚刚获取的地址访问对应的regionserver,拿到对应的表存储的regionserver

3、去表所在的regionserver进行数据的添加

4、查找对应的region,在region中寻找列族,先向memstore中写入数据

5、当memstore写入的值变多,触发溢写操作(flush),进行文件的溢写,成为一个StoreFile

6、当溢写的文件过多时,会触发文件的合并(Compact)操作,合并有两种方式(major,minor)

7、当region中的数据逐渐变大之后,达到某一个阈值,会进行裂变(一个region等分为两个region,并分配到不同的regionserver),原本的Region会下线,新Split出来的两个Region会被HMaster分配到相应的HRegionServer上,使得原先1个Region的压力得以分流到2个Region上。


由此可知HBase只是增加数据,所有的更新和删除操作,都是在Compact阶段做的,所以用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能读写。

标签: region、regionserver、compact、memstore、去表、面试
  • 回复
隐藏