欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

hadoop学习笔记(五)HBase的原理及概念模型

程序员文章站 2022-04-16 16:22:39
数据模型通过{“行键”,“列族” ,“列限定符”,“时间戳”}来确定一个单元格。概念模型行键按照字典序列进行排序用列anchor:cnnsi.com , anchor:my.look.ca或者contents:html来标识列从逻辑上讲,这是一个稀疏的映射关系表物理模型具体的物理存储采用了基于列的存储方式,会按照列族的不同分别存放两个片段,分成contents和anchor,列族中还包括时间戳和行键。逻辑上是空的地方不会单独用null存储,而是根本就不会被存储,也不会用null这个东...

数据模型

Hbase采用表来组织数据,采用行和列,行为行键,列为列族
hadoop学习笔记(五)HBase的原理及概念模型

通过{“行键”,“列族” ,“列限定符”,“时间戳”}来确定一个单元格。

概念模型

hadoop学习笔记(五)HBase的原理及概念模型

  • 行键按照字典序列进行排序
  • 用列anchor:cnnsi.com , anchor:my.look.ca或者contents:html来标识列
  • 从逻辑上讲,这是一个稀疏的映射关系表

物理模型

具体的物理存储采用了基于列的存储方式,会按照列族的不同分别存放两个片段,分成contents和anchor,列族中还包括时间戳和行键。

逻辑上是空的地方不会单独用null存储,而是根本就不会被存储,也不会用null这个东西占据空间。
hadoop学习笔记(五)HBase的原理及概念模型

Hbase的实现原理

hadoop学习笔记(五)HBase的原理及概念模型
图4-5:

  • 表中的每一条数据是根据行键字典序列维护
  • 根据行键对表中每一条数据进行分区,分区被称作Region,是在分布式集群上分发的基本单位,分发到运行Region服务器的机器上

图4-6:

-最初表中的只有一个Region,随着数据的不断插入,基于行键对数据进行分区的Region就会不断增大,在Region大小到达一个阀值的时候分裂成同等大小,实际的分裂过程是在Region服务器中进行的

大约的分布过程如下,Region存在Region服务器上
hadoop学习笔记(五)HBase的原理及概念模型

Region三级寻址

hadoop学习笔记(五)HBase的原理及概念模型
每一个Region都有唯一标识性,总体的三级寻址类似B+树

  • .META.是Region和Region服务器的对应关系表,又是元数据表,直到Region存放在那里
  • 映射关系多,.META.表也会被分成Region存在各个不同服务器上,-ROOT-表就是根数据表,用来存放.META.的Region的映射关系,-ROOT-只有一个Region,永远不会被划分
  • Zookkeeper文件记录了-ROOT-表的位置信息

通过三级寻址发现:
用户表Region个数 = -ROOT-表的映射关系个数 *. META.表的映射关系个数
hadoop学习笔记(五)HBase的原理及概念模型

Hbase运行的系统架构

hadoop学习笔记(五)HBase的原理及概念模型

  • 客户端表现形式为shell,也可自己写客户端,HBase提供了API,也是通过RPC这种远程访问机制对Mater进行访问,数据库的读写也是通过RPC与Region服务器进行交互
  • ZooKeeper就是对集群中机器进行管理,也并非是单一的机器,也是集群,图中是一个ZooKeeper集群概述,反映每台机器的运行状态或者是增加集群需要同通知ZooKeeper,Hbase内置了ZooKeeper。而且还保存了-ROOT-表地址和Master地址,用来进行三级寻址和访问Mater实现操作
  • Master主要是管理一些修改表的操作,负载均衡(有些Region服务器Region多,有些Region服务器Region少)
  • Region服务服务器以HDFS作为底层来进行存储,具有副本功能,Hbase不具备副本功能

Region服务器原理

hadoop学习笔记(五)HBase的原理及概念模型

  • 多个不同的Region放在一台Region服务器上

  • 一个Region中列族通过Store存储,Store由MemStore和StoreFile

  • MemStore是缓存,StoreFile是磁盘文件,先写入缓存,缓存满了,在写入磁盘空间,HFile就是StoreFIle的实现方式,Region会向整个HDFS系统去读写数据,所以安装hbase和配置hbase的时候需要配置参数,修改hbase.rootdir,指定Hbase的Master在NameNode运行的机器上,让HBase数据在HDFS集群上
    hadoop学习笔记(五)HBase的原理及概念模型启动HBase前需要设置属性hbase.rootdir,用于指定HBase数据的存储位置

  • HLog就是日志,必须先写入日志才能够写入MemStore缓存

用户读写数据过程:
hadoop学习笔记(五)HBase的原理及概念模型

  1. 数据会先写进日志HLog,然后写入缓存MemStore
  2. 缓存刷新:缓存有大小,会周期性的将缓存内容写入磁盘的StoreFile,并向HLog文件打一个标记表示缓存内容已经写入磁盘StoreFile文件中,来证明MemStore内容对应的HLog日志内容写入磁盘StoreFile,晴空缓存。每一个的缓存刷新都会生成一个StoreFile
  3. SoreFile越来越多就会发生合并,到达阈值,就会发生分裂,这个时候对应的Region就会被分成两个Region

hadoop学习笔记(五)HBase的原理及概念模型

读过程:hadoop学习笔记(五)HBase的原理及概念模型

  1. 先找缓存
  2. 缓存找不到就去StoreFile去找相关数据

本文地址:https://blog.csdn.net/liutao43/article/details/107372396