hbase物理架构原理

hbase原理

hbase是hadoop的数据库,主要用来存储数据,其存储数据的文件的格式是文档,基础是hdfs,数据存储在hdfs上,但是自己管理。

hbase物理架构体系

在这里插入图片描述
hbase主要由HMaster和RegionServer组成。
HMaster:是hbase集群的主节点,但是其可以有多个,用于高可用集群,当主节点不能工作时,可以使用其他的hmaster进行替换。
功能:监控regionserver,处理regionserver的负载均衡,故障转移
处理元数据的变更,通过zookpr把自己的位置信息告诉客户端。
RegionServer:regionserver其实是hbase的服务,部署在一台服务器上。
一个regionserver包含一个WAL(日志文件),一个BlockCache(读缓存),和多个region
一个region包括多个store(存储区),每一个store对应一个列簇
一个store包含多个storefile和一个MemStore组成。
一个storefile包含一个hfile,对应一个列簇
hfile和WAL作为序列文件保存在hdfs上。
功能:与客户端进行交互,负责管理维护region和存储hbase的实际数据。处理分配给他的region,刷新缓存到hdfs中,维护Hlog
执行compaction,负责处理region分片
Client

整合HBase集群的入口

使用HBase RPC机制与HMaster和HRegionserver通信

与HMaster通信进行管理类的操作

与HRegionserver通信进行读写类操作

包含访问hbase 的接口,client 维护着一些cache 来加快对hbase 的访问,比如regione 的位置信息

Zookeeper

保证任何时候,集群中只有一个running master,Master与RegionServers启动时会向ZooKeeper注册默认情况下,HBase 管理ZooKeeper 实例,比如,启动或者停止ZooKeeperZookeeper的引入使得Master不再是单点故障

存贮所有Region 的寻址入口

实时监控RegionServer 的状态,将Regionserver 的上线和下线信息,实时通知给Master

存储Hbase的schema和table元数据

hbase工作流程

客户端首先与zookeeper建立联系,Hmaster在zookeeper上注册,留下自己的位置信息,当向hbase发出读写请求,获取meta表所在的rs时,此时zookeeper向客户端返回meta表所在的rs,客户端接收到,根据获得rs的meta表的位置,去相应的rs中读取meta数据,然后在相应的rs中进行数据的读写操作。
主要流程为
hmaster根据表的大小以及负载均衡等条件,分配region给regionserver,regionserver打开region,并创建Hregion实例,它会为每个表的HColumnFamily(用户创建表时定义的列簇)创建一个Store实例,每个Store实例包含一个或多个StoreFile实例。是实际数据存储文件HFile的轻量级封装,每个Store会对应一个MemStore。写入数据时数据会先写入Hlog中。成功后在写入MemStore中。Memstore中的数据因为空间有限,所以需要定期flush到文件StoreFile中,每次flush都是生成新的StoreFile。HRegionServer在处理Flush请求时,将数据写成HFile文件永久存储到HDFS上,并且存储最后写入的数据序列号。

region和table

在这里插入图片描述
1.table中的所有行都是按照rowkey的字典排序

2.table在行的方向上分割为多个Region

3.Region按大小分割,每个表开始只有一个region,随着数据增多,region不断增大,但到达阈值时,region就会分割成两个新的region,因此region会越来越多。
4.region是hbase中分布式存储和负载均衡的最小单元,不同的regioon分布到不同的regionserver上,但Region不会拆分到不同的Region Server上。

Table 在行的方向上分割为多个HRegion,一个region由[startkey,endkey)表示
Region是分布式存储的最小单元,但不是存储的最小的单元。

  1. region由一个或多个Store组成,每个Store保存一个columnfamily

  2. 每个Store又由一个memStore和0个或多个StoreFile组成

  3. memStore存储在内存中,StoreFile存储在HDFS上

Table中Region内部结构
1.一个表会按照行(看数据量)划分为若干个region每一个region分配给一台特定的regionserver管理

2.每一个region内部还要依据列族划分为若干个HStore

3.每个HStore中的数据会落地到若干个HFILE文件中

4.region体积会随着数据插入而不断增长,到一定阈值后会分裂

5.随着region的分裂,一台regionserver上管理的region会越来越多

6.HMASTER会根据regionserver上管理的region数做负载均衡

7.region中的数据拥有一个内存缓存:memstore,数据的访问优先在memstore中进行

8.memstore中的数据因为空间有限,所以需要定期flush到文件storefile中,每次flush都是生成新的storefile

9.storefile的数量随着时间也会不断增加,regionserver会定期将大量storefile进行合并(merge)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值