如上图所示;首先我们需要知道 HBase 的集群是通过 Zookeeper 来进行机器之前的协调,也就是说 HBase Master 与 Region Server 之间的关系是依赖 Zookeeper 来维护。当一个 Client 需要访问 HBase 集群时,Client 需要先和 Zookeeper 来通信,然后才会找到对应的 Region Server。每一个 Region Server 管理着很多个 Region。对于 HBase 来说,Region 是 HBase 并行化的基本单元。因此,数据也都存储在 Region 中。这里我们需要特别注意,每一个 Region 都只存储一个 Column Family 的数据,并且是该 CF 中的一段(按 Row 的区间分成多个 Region)。Region 所能存储的数据大小是有上限的,当达到该上限时(Threshold),Region 会进行分裂,数据也会分裂到多个 Region 中,这样便可以提高数据的并行化,以及提高数据的容量。每个 Region 包含着多个 Store 对象。每个 Store 包含一个 MemStore,和一个或多个 HFile。MemStore 便是数据在内存中的实体,并且一般都是有序的。当数据向 Region 写入的时候,会先写入 MemStore。当 MemStore 中的数据需要向底层文件系统倾倒(Dump)时(例如 MemStore 中的数据体积到达 MemStore 配置的最大值),Store 便会创建 StoreFile,而 StoreFile 就是对 HFile 一层封装。所以 MemStore 中的数据会最终写入到 HFile 中,也就是磁盘 IO。由于 HBase 底层依靠 HDFS,因此 HFile 都存储在 HDFS 之中。这便是整个 HBase 工作的原理。

最新文章

  1. 向量时钟Vector Clock in Riak
  2. Ettus Research USRP B200/B210 simple case
  3. Linux搜狗输入法在有道云笔记上输入冗余
  4. 将php配置为服务
  5. javascript的变量、作用域和内存问题
  6. 虚拟机VHD格式解析到NTFS文件系统解析
  7. 多人合作开发启动activity-----规范问题
  8. win7如何以管理员身份运行命令提示符(cmd)
  9. obj-c编程06:反射与元编程初步
  10. MongoDB 文章目录
  11. 二、activiti工作流-创建25张表
  12. Django-model基础
  13. MySQL数据库对象-索引
  14. 四则运算 python
  15. 学习笔记-AngularJs(二)
  16. Hive表中Partition的创建
  17. SpringMVC Controller 介绍及常用注解
  18. CentOS 7下安装pptp服务端手记 ok
  19. arm交叉编译opencv
  20. MySQL常用存储引擎功能与用法详解

热门文章

  1. Select 选择器
  2. [flask]分页显示列表
  3. C#规范整理·多线程\异步\并行\任务
  4. linux 下的快捷键操作
  5. iOS多选实现注意点
  6. 批量生成xml文件数据C#实现
  7. LeetCode.1029-两城调度(Two City Scheduling)
  8. 描述下数据库中的事务--ACID各个的特点
  9. docker 安装 gitlab 中文社区版
  10. 常用ARM指令