全网最详细的大数据HBase文章系列,强烈建议收藏加关注!

新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点。

目录

系列历史文章

HBase读取和存储数据的流程

一、HBase读取数据的流程

二、HBase存储数据的流程

客户端的同步流程:

异步服务器端执行过程:


系列历史文章

2021年大数据HBase(十七):HBase的360度全面调优

2021年大数据HBase(十六):HBase的协处理器(Coprocessor)

2021年大数据HBase(十五):HBase的Bulk Load批量加载操作

2021年大数据HBase(十四):HBase的原理及其相关的工作机制

2021年大数据HBase(十三):HBase读取和存储数据的流程

2021年大数据HBase(十二):Apache Phoenix 二级索引

2021年大数据HBase(十一):Apache Phoenix的视图操作

2021年大数据HBase(十):Apache Phoenix的基本入门操作

2021年大数据HBase(九):Apache Phoenix的安装

2021年大数据HBase(八):Apache Phoenix的基本介绍

2021年大数据HBase(七):Hbase的架构!【建议收藏】

2021年大数据HBase(六):HBase的高可用!【建议收藏】

2021年大数据HBase(五):HBase的相关操作-JavaAPI方式!【建议收藏】

2021年大数据HBase(四):HBase的相关操作-客户端命令式!【建议收藏】

2021年大数据HBase(三):HBase数据模型

2021年大数据HBase(二):HBase集群安装操作

2021年大数据HBase(一):HBase基本简介

HBase读取和存储数据的流程

一、HBase读取数据的流程

1、由客户端发起读取数据的请求, 首先先连接 zookeeper , 从zookeeper获取hbase:meta表被哪个regionServer所管理meta表中主要记录了 hbase中各个表有那些region,以及每个region被哪个regionServer所管理hbase中非常特殊的元数据存储表, 此表只会有一个region

2、连接meta对应的regionServer, 从meta中获取要查询数据的在那些region中, 并将其对应regionServer地址返回给客户端

3、开始并行的连接这些regionServer, 从这些regionServer中获取数据,先从 memStore  --> blockCache ---> storeFile  ---> 大的Hfile

4、各个regionserver将读取到数据返回给client , client根据需要过滤出需要的数据, 最后展示给调用者

二、HBase存储数据的流程

客户端的同步流程:

1、客户端发起写入数据的请求, 首先会先连接zookeeper, 从zookeeper获取hbase:meta表所在的regionServer的地址

2、连接meta表对应的regionServer, 从meta表获取目标表对应要写入数据的region的地址(基于region的startkey和endKey来确定)

3、连接对应region的regionServer的地址, 开始进行数据的写入

4、首先先将数据写入到这个regionServer的Hlog日志中, 然后在将数据写入到 对应的region中store模块的memStore中, 当这个两个地方都写入完成后, 客户端就会认为数据写入完成了

异步服务器端执行过程:

5、客户端不断的进行数据的写入工作, memStore数据也会不断的增多, 当memStore中数据达到一定的阈值(128M|1小时)后, 内部最终启动一个flush线程, 将数据刷新到HDFS上, 形成一个storeFile文件

6、随着memStore不断刷新数据到HDFS中, storeFile文件也会越来越多, 当storeFile的文件达到一定的阈值后(3个及以上), 启动compact线程, 将多个文件合并最终合并为一个大文件(Hfile)

7、随着不断的合并, 这个大的Hfile文件也会越来越大, 当这个大的Hfile达到一定的阈值(最终10GB)后, 启动split机制, 将大的Hfile一分为二的操作, 此时region也会进行分割操作, 变成两个新的region, 每个region管理每个分割后新的Hfile文件, 原有就得region就会被下线

8、随着不断的进行split, 表的region的数量也会越来越多的