1、读请求过程:
meta表是hbase系统自带的一个表。里面存储了hbase用户表的元信息。
元信息为meta表内记录一行数据是用户表一个region的start key 到endkey的范围。
meta表存储在regionserver里。 具体存储在哪个regionserver里?zookeeper知道。
过程:
1.客户端到zookeeper询问meta表在哪
2.客户端到meta所在的节点(regionserver)读取meta表的数据
3.客户端找到region 获取region和regionserver的对应关系,直接到regionserver读取region数据
查看meta表信息
hbase(main):011:0> scan ‘hbase:meta’
2、写请求过程:
1.Client先访问zookeeper,找到Meta表,并获取Meta表元数据。确定当前将要写入的数据所对应的HRegion和 HRegionServer服务器。
2.Client向该HRegionServer服务器发起写入数据请求。
3.Client先把数据写入到HLog,以防止数据丢失,然后将数据写入到Memstore。
4.Memstore达到阈值,会把Memstore中的数据flush到Storefile中
5.当Storefile越来越多,达到一定数量时,会触发Compact合并操作,将多个小文件合并成一个大文件。
6.Storefile越来越大,Region也会越来越大,达到阈值后,会触发Split操作,变成两个文件。
== 说明:hbasez 支持数据修改(伪修改),实际上是相同rowkey数据的添加。hbase只显