Hbase架构以及原理

版权声明:1911907658 https://blog.csdn.net/qq_33598343/article/details/84675112

在这里插入图片描述

HMaster:

1.为Region server分配region
2.负责Region server的负载均衡
3.发现失效的Region server并重新分配其上的region。
4.HDFS上的垃圾文件回收。
5.处理schema更新请求。

HRegionServer:

HMaster在功能上主要负责Table表和HRegion的管理工作,具体包括:

1、管理用户对Table表的增、删、改、查操作;
2、管理HRegion服务器的负载均衡,调整HRegion分布;
3、在HRegion分裂后,负责新HRegion的分配;
4、在HRegion服务器停机后,负责失效HRegion服务器上的HRegion迁移。

HRegion:存储数据,以Rowkey方向来划分多个Region(看下面-root-和-meta-的详解的时候就明白了)
Store:为一个存储单元,为column familly,一个列族的所有信息
MemStore:是一个内存区域

Hlog:记录操作信息,保证数据完整性

StoreFile:是hbase中的数据文件,而HFile是它的数据存储的实体

StoreFile以HFile格式保存在HDFS上。HFile是Hadoop的二进制格式文件。实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile

读数据的时候:

大致流程:
Client访问Zookeeper获得的元数据,然后去指定的HRegionServer中的HRegion查找数据,首先去MemStore去看看有没有,有就直接返回,没有就去StoreFile找。
在这里插入图片描述
详细流程
Client通过ZK获得-ROOT-表的位置,然后访问它获得-META-表中对应的Region的位置,然后去读,请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并把读的结果放入BlockCache,缓存返回数据。
在这里插入图片描述

写数据的时候:

大致流程:
在这里插入图片描述
Client获得Zookeeper存储的HMaster返回的元数据信息,去指定的HRegionServer中的HRegion下,首先是把Log写入到HLog中,HLog是标准的Hadoop Sequence File,由于Log数据量小,而且是顺序写,速度非常快;同时把数据写入到内存MemStore中,成功后返回给Client,所以对Client来说,HBase写的速度非常快,因为数据只要写入到内存中,就算成功了。
接着检查MemStore是否已满,如果满了,就把内存中的MemStore Flush到磁盘上,形成一个新的StoreFile。
当Storefile文件的数量增长到一定阈值后,系统会进行合并(Compact),在合并过程中会进行版本合并和删除工作,形成更大的storefile。
当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split),并由Hmaster分配到相应的HRegionServer,实现负载均衡

-ROOT- 与-MATE-

在这里插入图片描述

HBase的所有Region元数据被存储在.META.表中,随着Region的增多,.META.表中的数据也会增大,并分裂成多个新的Region。为了定位.META.表中各个Region的位置,把.META.表中所有Region的元数据保存在-ROOT-表中,最后由Zookeeper记录-ROOT-表的位置信息。所有客户端访问用户数据前,需要首先访问Zookeeper获得-ROOT-的位置,然后访问-ROOT-表获得.META.表的位置,最后根据.META.表中的信息确定用户数据存放的位置,如下图所示。

在这里插入图片描述
ROOT-表永远不会被分割,它只有一个Region,这样可以保证最多只需要三次跳转就可以定位任意一个Region。为了加快访问速度,.META.表的所有Region全部保存在内存中。客户端会将查询过的位置信息缓存起来,且缓存不会主动失效。如果客户端根据缓存信息还访问不到数据,则询问相关.META.表的Region服务器,试图获取数据的位置,如果还是失败,则询问-ROOT-表相关的.META.表在哪里。最后,如果前面的信息全部失效,则通过ZooKeeper重新定位Region的信息。所以如果客户端上的缓存全部是失效,则需要进行6次网络来回,才能定位到正确的Region。

猜你喜欢

转载自blog.csdn.net/qq_33598343/article/details/84675112