Hbase详细架构图

注
:Hbase依赖于zookeeper和hdfs,需要启动zk和hdfs。
主要组件
Zookeeper:
HBase 使用 Zookeeper 来执行 Master 高可用、RegionServer 监控、元数据录入以及集群配置维护等任务。
HDFS:
HDFS为HBase提供了终极的底层数据存储服务,同时也为HBase提供了高可用性支持。
Master:(是所有Region Server的Master,实现类为HMaster)
- 对RegionServer的操作:
- 监控RegionServer
- 处理RegionServer 元数据 变化
- 处理 region 的 分配或传输
- 执行数据 负载均衡
- 其位置 在公共时间给客户端 用于表操作 (DDL) 创建、删除、修改
- 命名空间
命名空间类似于关系数据库的Database概念。每个命名空间下有几个表。 HBase 有两个内置命名空间,即 hbase 和 default。 hbase存储HBase的内置表,默认表是用户默认使用的命名空间。 HBase表中的 - Row
每行数据由一个RowKey和若干个Column(列)组成。数据通过RowKey按照字典顺序存储,查询数据时只能根据RowKey进行检索,所以RowKey的设计非常重要。 - Column
HBase表中的每一行数据都由一个RowKey和若干列(column)组成。数据按照RowKey按照字典顺序存储,查询数据时只能根据RowKey进行检索,所以RowKey的设计非常重要。 - 时间戳
用于识别数据的不同版本。每条数据写入时,如果不指定时间戳,系统会自动添加该字段,值为写入HBase的时间。 。 - Cell
由{行键,列族:列限定符,时间戳}唯一标识的单元格。 Cell中的数据没有类型,全部以字节码形式存储(byte[]数组)。
RegionServer:(管理者为Region,实现类为HRegionServer)
1.负责将实际数据存储到HBase
2。处理分配给它的区域
3。清空HDFS
4的缓存。维持 Hlog
5。执行压缩
6。负责处理区域共享
数据操作:(DML)
get、put、delete;
Region:
Hbase表分区,HBase表会根据region存储在RegionServer中的RowKey值分为不同的,一个RegionServer中可以有多个不同的region。
Hlog:
也称为 Write-Ahead log (WAL) 预写日志。
HBase修改记录,向HBase读写数据时,数据不会直接写入磁盘,而是会在内存中保存一段时间(时间和数据量阈值可设置)。由于数据必须经过MemStore排序后才能写入StoreFile,因此将数据存储在内存中可能更容易导致数据丢失。为了解决这个问题,数据首先会被写入一个名为 Write-Ahead log file 的文件中。然后写入内存。所以当系统出现故障时,可以通过这个日志文件来重建数据。
Store:
StoreFile 存储在store 中。一个Store对应HBase表中的一个列族(Column Family)。
MemStore:
写入缓存。由于StoreFile中的数据要求是有序的,因此数据首先存储在MemStore中。排序后,到达flush时间后会flush到StoreFile。每次刷新都会创建一个新的StoreFile。
StoreFile:
这是磁盘上存储原始数据的实际物理文件,是实际的存储文件。 StoreFile以Hfile的形式存储在HDFS中。每个Store都会有
一个或多个StoreFile,每个StoreFile中的数据都是排序的(按照Rowkey的字典顺序排序)。
Hfile:
可以理解为一种文件格式(其他文件格式TXT、orc、parquet...),StoreFile以hfile格式保存。
数据模型
逻辑结构图
物理存储结构
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。