图文详解 HBase 的读写流程

Posted Shockang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图文详解 HBase 的读写流程相关的知识,希望对你有一定的参考价值。

前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

请结合我的这篇博客来理解本文:
一篇文章搞懂 HBase 的内部原理

读操作

  1. 首先从 ZooKeeper 找到 meta 表的 region 位置,然后读取 hbase:meta 表中的数据, hbase:meta 表中存储了用户表的 region 信息
  2. 根据要查询的 namespace 、表名和 rowkey 信息,找到写入数据对应的 Region 信息
  3. 找到这个 Region 对应的 RegionServer ,然后发送请求
  4. 查找对应的 Region
  5. 先从 MemStore 查找数据,如果没有,再从 BlockCache 上读取

HBase 上 RegionServer 的内存分为两个部分一部分作为 MemStore ,主要用来写;。
另外一部分作为 BlockCache ,主要用于读数据;

  1. 如果 BlockCache 中也没有找到,再到 StoreFile(HFile) 上进行读取

从 StoreFile 中读取到数据之后,不是直接把结果数据返回给客户端,而是把数据先写入到 BlockCache 中,目的是为了加快后续的查询;然后在返回结果给客户端。

写操作

  1. 首先从 ZooKeeper 找到 hbase:meta 表的 Region 位置,然后读取 hbase:meta 表中的数据, hbase:meta 表中存储了用户表的 Region 信息
  2. 根据 namespace 、表名和 rowkey 信息找到写入数据对应的 Region 信息
  3. 找到这个 Region 对应的 RegionServer ,然后发送请求
  4. 把数据分别写到 HLog ( WriteAheadLog )和 MemStore 各一份
  5. MemStore 达到阈值后把数据刷到磁盘,生成 StoreFile 文件
  6. 删除 HLog 中的历史数据。

以上是关于图文详解 HBase 的读写流程的主要内容,如果未能解决你的问题,请参考以下文章

图文详解HBase 的数据模型与架构原理详解

HDFS读写流程图文详解,及职责详解

图文详解HDFS 系统架构与文件数据读写流程

图文详解HBase 数据模型及其架构原理

图文详解!5分钟教你掌握CentOS开机流程

大数据学习系列之五 ----- Hive整合HBase图文详解