2.8.5 hadoop体系之离线计算-HBase数据库-HBase高级-详细架构

目录

1.整体系统架构

2.挨个分析

2.1 HDFS 

2.2 Zookeeper 

2.3 HMaster

2.4 HRegionServer

2.5 Write-Ahead logs(WAL,Hlog)

2.6 Region

2.7 Store

2.8 MemStore

2.9 Store File->HFile 


1.整体系统架构

HBase 是由 Client、Zookeeper、Master、HRegionServer、HDFS 等几个组件组成,HBase依赖于ZooKeeper和HDFS。

2.挨个分析

2.1 HDFS 

为 Hbase 提供最终的底层数据存储服务,同时为HBase 提供高可用(Hlog 存储在HDFS)的支持,具体功能概括如下:提供元数据和表数据的底层分布式存储服务保证的高可靠和高可用性 (数据多副本)

2.2 Zookeeper 

HBase 通过 Zookeeper 来做 master 的高可用(通过 Zoopkeeper 来保证集群中只有 1 个 master 在运行,如果 master 异常,会通过竞争机制产生新的 master 提供服务。)、RegionServer 的监控(通过 Zoopkeeper 来监控 RegionServer 的状态,当 RegionSevrer 有异常的时候,通过回调的形式通知 Master RegionServer 上下线的信息)、元数据的入口以及集群配置的维护等工作。(DML的请求通过ZK分发到HRegionServer不通过HMaster,HMaster是处理DDL的请求。HMaster宕机不会影响客户端的读写请求;但是取法进行create 'stu4','info'的DDL操作。当原有的Meta元数据信息改变时也无法维护。)
在这里插入图片描述

2.3 HMaster

监控 RegionServer为 RegionServer 分配 Region(维护整个集群的负载均衡,在空闲时间进行数据的负载均衡 ) ,维护集群的元数据信息处理 region 的分配或转移(发现失效的 Region,并将失效的 Region 分配到正常的 RegionServer 上 ;当 RegionSever 失效的时候,协调对应 Hlog 的拆分)。

2.4 HRegionServer

HregionServer 直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下: 管理 master 为其分配的 Region处理来自客户端的读写请求 ,负责和底层 HDFS 的交互(存储数据到 HDFS),负责 Region 变大以后的拆分负责 Storefile 的合并工作 ,刷新缓存到HDFS维护Hlog预写入日志(防止内存数据丢失,可恢复,记录了操作)。一个HregionServer对应一台服务器节点。

2.5 Write-Ahead logs(WAL,Hlog)

用来容灾。当对 HBase 写数据的时候,数据会在内存MemStore中保留一段时间,MemStore达到一定的数据量(时间以及数据量阈值可以设定),数据再写进磁盘。但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做 Write-Ahead logfile 的文件中,然后再写入内存中,所以在系统出现故障的时候,数据可以通过这个日志文件重建。 

由于数据要经 MemStore 排序后才能刷写到 HFile,但把数据保存在内存中会有很高的 概率导致数据丢失,为了解决这个问题,数据会先写在一个叫做 Write-Ahead logfile 的文件 中,然后再写入 MemStore 中。所以在系统出现故障的时候,数据可以通过这个日志文件重 建。

2.6 Region

Hbase表的分片,HBase 表会根据 RowKey 值被切分成不同的 region 存储在 RegionServer中,在一个 RegionServer 中可以有多个不同的 region。同一个行键的 Region 不会被拆分到多个 Region 服务器上。 一个HBase表被划分成多个Region,开始只有一个Region,后台不断分裂。一个表中包含多个列族,一个列族一个文件存储,region的切分是横向切分的,那么包含了多个列族。

一个HRegion Server维护多个Region(横向切),一个Region中有多个Store(列族文件夹),一个Store中有多个Store File(Flush一次得到一个Store File文件)和一个Mem Store文件(满足条件Flush)。

在这里插入图片描述

2.7 Store

HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个列族。存储文件类型是HFile。Store中含有MemStore和Store File。

2.8 MemStore

写缓存,由于 HFile 中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,达到一定缓存大小或者时间节点触发一次 flush,每次刷写都会形成一个新的 HFile。每次 Flush 的最小单位是 Region。每个 Column family 维护一个 MemStore。

2.9 Store File->HFile 

这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件(等同于txt)。StoreFile 是以 Hfile的形式(键值对)存储在 HDFS  dataNode(磁盘上)的。每个 Store 会有 一个或多个 StoreFile(HFile),数据在每个 StoreFile 中都是有序的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值