HBase的读写流程
HBase中最基本的原理就是rowkey,进行增删改查的话,首先要找到rowkey所存在的Regoin,Regoin在RegoinServer中,一般Regoin都是RegoinServer区间的一个定义,这是它最基本最狭义的一个描述,但是这里面要知道相关的元数据信息比如说写流程,
写流程:
客户端先去zookeeper,zookeeper中有一个节点,类似于root表的一个概念,它存储的是mate表元数据表,元数据表也是HBASE表,它的表Regoin在RegoinServer中,Regoin是什么样子呢?首先对于rowKey,比如说table1,后面加上1-100那么这个rowkey就是由表名和Regoin的区间所构成的rowkey,还有table+100到200区间构成了新的rowkey,一种rowkey设计,Regoin已经代表了你已经使用的表和输入插入和写入的一个范围的关系,通过zookeeper能够找到你所对应的 你要操作的哪张表,那些rowkey,映射完Regoin,以及Regoin在那些RegoinServer上,这是元数据,当可客户端做完一次读操作后,会做一个客户端缓存,缓存到客户端自己的内存里面,然后去访问RegoinServer,通过RegoinServer拿到Regoin,因为他是一个范围,Regoin中存在的是如果一张表中有很多信息,在加上其他表那么这些表是有序的,以及之后一部分截取出来算作你的一个Regoin,这个Regoin的信息会存在RegoinServer里面,客户端就会找到这个Regoin块,这个Regoin块里面存了不同的表,会扫描这张表和rowkey,会查找某条记录,这条记录里面会有你目标访问的表以及包含这个Regoin在哪个RegoinServer里面,找到之后客户端会再次和目标表的那个RegoinServer,进行连接,然后把你的数据先写到你的内存里面,写的时候会做一次写日志,并不是向磁盘落写