今天接着上面的HBASE往下看
回顾一下,Hbase是什么?
其实就是一个非关系型的数据库,能够支持超大规模的数据的实时读写。(可以看出很强大)
在储存机制上与传统MySQL的不同,HBASE不存储空字段,玩的是列存储,特点就是容量多。
HBASE的应用场景也非常多,凡是海量明细数据且后期还要查询的,都很适合HBASE。
HBASE的组成结构
主要有4个部分组成,每个部分都有特定的功能。
HBase读数据的流程
第一步:先找到指路人zookeeper,在zookeeper中找到数据表的region的位置,然后开始从meta表里读取对应的region信息。(注意,这里面都是数据的数据,其实就是数据的储存位置信息,知道了信息再去表里面找)
第二步:根据客户需要的表名、namespace、rowkey信息来找到region的位置信息。
第三步:先找到这个region的RegionServer,也就是他的管理员,向管理员发送请求。
第四步:请求同意后就可以进去找region了。
第五步:如果说这里面没有,那就要从BlockCache里面找了。
因为HBASE上的内存是有两个的,一个是memstore,也就是我们上面说的,另一个就是这个BlockCache了。
第六步:如果这BC里面还没有,就去StoreFile。(如果这里还没有,你就得考虑你是不是压根没这玩意)
Hbase写数据的流程
前三步和读数据是一样的,第四步就不同了,不过也就是正常写数据。这里强调读写数据的功能,应该还是像说一下这个Hbase的机理,是先找元数据(数据的信息),再根据元数据去找真实数据。
HBase的刷写和合并
这个倒是没啥好说的,只要知道,这个是出于对数据的保护来制作的就可以了,具体遇到的时候,大概学习一下就可以。
今天有些晚了,明天开始学习Redis的知识。