Hbase详细架构图解

2020-05-1710:10:24数据库教程Comments1,927 views字数 1690阅读模式
Hbase详细架构图解

注意文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Hbase是依赖zookeeper和hdfs的,需要启动zk和hdfs。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

主要组件

Zookeeper:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

HBase 通过 Zookeeper 来做 Master 的高可用、RegionServer 的监控、元数据的入口以及集群配置的维护等工作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

HDFS:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

HDFS 为 HBase 提供最终的底层数据存储服务,同时为 HBase 提供高可用的支持。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Master:(是所有 Region Server 的管理者,其实现类为 HMaster)

  • 对RegionServer的操作:
  1. 监控RegionServer
  2. 处理RegionServer 故障转移
  3. 处理 元数据 的变更
  4. 处理region的 分配或转移
  5. 在空闲时间进行数据的 负载均衡
  6. 通过Zookeeper发布自己的位置给客户
  • 对于表的操作(DDL)create, delete, alter

RegionServer:(为 Region 的管理者,其实现类为 HRegionServer)

1.负责存储HBase的实际数据文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

2.处理分配给它的Region文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

3.刷新缓存到HDFS文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

4.维护Hlog文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

5.执行压缩文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

6.负责处理Region分片文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

对于数据的操作:(DML)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

get, put, delete;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Region:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Hlog:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

又称Write-Ahead logs(WAL)预写入日志。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

HBase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定)。由于数据要经 MemStore 排序后才能刷写到 StoreFile,但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Store:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

StoreFile存储在Store中,一个Store对应HBase表中的一个列族(列簇, Column Family)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

MemStore:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

写缓存,由于 StoreFile中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,等到达刷写时机才会刷写到 StoreFile,每次刷写都会形成一个新的 StoreFile。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

StoreFile:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。StoreFile是以Hfile的形式存储在HDFS的。每个 Store 会有文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

一个或多个 StoreFile,数据在每个 StoreFile 中都是有序的(按照Rowkey的字典顺序排序)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Hfile:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

可以理解成一种文件格式(其他的文件格式TXT,orc,parquet...),StoreFile是以hfile格式存储的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

数据模型

逻辑结构图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Hbase详细架构图解

物理存储结构文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html

Hbase详细架构图解
  1. Name Space
    命名空间,类似于关系型数据库的 DatabBase 概念,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default 表是用户默认使用的命名空间。
  2. Row
    HBase 表中的每行数据都由一个 RowKey 和多个 Column (列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。
  3. Column
    HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。
  4. Time Stamp
    用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入 HBase 的时间。
  5. Cell
    由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮(byte[]数组)。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/19080.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/19080.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定