HBASE技术原理(8)

网友投稿 725 2022-05-28

HBase关键流程

读数据流程

当用户读取数据时,HRegionServer会首先访问MemStore缓存,如果找不到,再去磁盘上面的StoreFile中寻找。读流程可大致分为三个步骤:(1)客户端发送读数据请求,(2)定位Region,(3)Region内查找数据。

HBASE技术原理(8)

写数据流程

写流程跟读流程非常类似,也是三步:(1)客户端发送写数据请求,(2)定位Region,(3)Region内写数据。

当用户需要写入数据时,被分配到相应HRegionServer去执行。用户数据首先被写入到Hlog中,再写入MemStore中,最终写到磁盘上形成StoreFile。只有当操作写入Hlog之后,commit()调用才会将其返回给客户端。

缓存刷新

系统会周期性地把MemStore缓存里的内容刷写到磁盘的StoreFile文件中,清空缓存,并在Hlog里面写入一个标记,每次刷写都生成一个新的StoreFile文件,因此,每个Store包含多个StoreFile文件,每个HRegionServer都有一个自己的HLog 文件,每次启动都检查该文件,确认最近一次执行缓存刷新操作之后是否发生新的写入操作;如果发现更新,则先写入MemStore,再刷写到StoreFile,开始为用户提供服务。

StoreFile的合并

当Hfile文件数目越来越多,所需要的读取时延也越来越大。所以每次刷写都生成一个新的StoreFile,但是生成的StoreFile数量太多的时候,影响查找速度。调用Store.compact()把多个合并成一个。合并操作比较耗费资源,只有数量达到一个阈值才启动合并。

Store工作原理

Store是HRegionServer的核心,而一个Store由一个MemStore和多个StoreFile组成,当StoreFile的数据过多时,会发出将多个StoreFile合并成一个的操作,而单个StoreFile过大时,又触发分裂操作,1个父Region被分裂成两个子Region。

HBase

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C语言 | 由小到大输出两个数
下一篇:Ubuntu轻松入门(上)
相关文章