1、请求流程
(1)当一个表过大时(默认配置是超过10G),HBase会将该表切分成多个region,每个region是由一个regionserver负责管理,当有读写请求时,无需联系master,直接联系相对应的regionserver进行处理。
(2)表的元数据是由"hbase:meta"表负责管理的,"hbase:meta"表的元数据信息由zookeeper负责管理,在"meta-region-server"节点上。
(3)基本工作流程:客户端先联系zk获取meta表的regionserver,同时向此regionserver发送请求,获得它所管理的meta表,然后通过meta表获取所需表的regionserver,最后通过所需表的regionserver发送这次请求,并缓存这次查询信息,以后只要知道了所需表的regions,客户端就可以通过缓存信息定位到region,不用再次查找meta表。
2、区域(region)详解
(1)meta表的ROW格式(区域名):名字空间:表名,起始key,时间戳.MD5码(即编码区域名).
(2)meta表的COLLUN+CELL格式:列族:列限定符,时间戳,value值
(3)split 'test:t1' 'row050' ====== 手动切分t1表
(4)balance ====== 平衡器,将region平均分给regionserver
(5)merge_region 'a','b' ====== 将region合并(a和b是两个region的MD5码)
(6)flush 'test:t1' ====== 将内存中的数据实例化到磁盘
3、写入过程(put)