Hbase各组件功能、HMaster、HRegionServer、HRegion、Hbase和Zookeeper关系、HBase如何恢复宕机前数据 03

本文详细剖析了HBase的架构,包括其整体结构、各组件的功能与交互,如HMaster、HRegionServer、HLog等,以及数据存储流程,如MemStore、StoreFile和HFile的运作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Hbase整体结构

在这里插入图片描述

2. Hbase文字层级结构详解

  • client
  • ZK
  • HMaster
  • HRegionServer
    • HRegion–>一个table有多个HRegion,一个HRegion默认为10g
      • HStore–>对应一个列族,一个HRegion有多个HStore
        • MemStore(内存)–>Flush到StoreFile
        • StoreFile(磁盘)
          • HFile(默认128g)–>hdfs客户端,写入到hdfs中
    • HLog(容错机制,副本机制,保证数据不丢失)

3. 详细讲解HBase结构

在这里插入图片描述

3.1 client

  • client和hmaster, client和hregionServer之间使用rpc通信
  • client和hmaster–>管理型操作
  • client和hregionserver–>读写型操作

3.2 Zookeeper

  • 保证多个hmaster启动情况下,只有一个hmaster运行。–>分布式锁功能
  • 存储 **-root-**表的location,所有hregion的入口,hmaster地址。
  • 监控hregionServer的状态,将hregionServer的上线和下线信息,实时通知给hmaster
    在这里插入图片描述
    在这里插入图片描述
  • 存储hbase的schema
    • 有哪些table,
    • 每个表中有哪些column family

3.3 hmaster

hmaster需要与zookeeper保持通信状态,通过zookeeper知道hregionServer的位置及hregionServer的存活状态(zookeeper监控hregionServer的存活),管理集群。

  • 为hregionServer分配region(默认为10G一个region)
  • 负责hregionServer的负载均衡
  • 发现失效的hregionServer,就重新分配到其他hregionServer的hregion中
  • GFS上的垃圾文件回收
  • 它会负责客户端创建表、删除表的请求。

3.4 hregionServer(Hbase最核心的模块)

  • 维护hmaster分配给它的10G的hregion
  • 负责切分过大的hregion(StoreFile触发切分机制)。
  • 它会接受到客户端的读写表的请求。

3.5 hregion

  • 一个表最开始存储的时候,只有一个hregion
  • 一个region中会有多个store,每个store用来存储一个列簇。如果只有一个column family,就只有一个store。
  • region会随着插入的数据越来越多,会进行拆分。默认大小是10G一个。

3.6 HFile

  • HFile是HBase中keyValue数据的存储格式,列名:列值
  • HFile是Hadoop的二进制格式文件,storeFile就是对Hfile进行了封装,进行数据的存储。

3.7 HStore(HBase的存储核心,memStore和storeFile组成)

在这里插入图片描述

  • client写入数据,会先连hmaster,hmaster通过zk中的**-root-.meta**得知机器的分配状态。找一台空闲的,鲜活的,离得近的hregionServer。
    • 如果是重新建表,并分配一块新的hregion和hlog给这个表。
    • 如果是往表里面写数据,会通过zk告知hregionServer往哪里写。
  • client从zk中找到hmaster告知的空闲的、鲜活的、离得近的hregionServer,开始写数据。
  • 数据会先写入到hlog和memStore中
  • memStore满了后,会flush到一个StoreFile。
  • storeFile达到一定阀值(比如64M),触发compact,会合并成一个大的storeFile,同时进行版本合并和数据删除。
  • 多个storeFile合并成一个storeFile,当这个storeFile达到一定阀值(比如256M),会触发split操作,切分为两个storeFile。
  • split操作相当于把和region切分为两个hregion,旧的hregion下线,新的storeFile分配到这两个hregion中,hmaster又把这两个hregion分配到相应的hregionServer上(有了20G的两个hregion

3.8 HLogs(副本机制,防止hbase宕机)

HBase如何恢复宕机前数据
在这里插入图片描述

  • 每个hregionServer都有一个HLog。
  • HLog是一个实现write ahead log的类,用户写入memStore的同时,也会写一份数据到HLog中,HLog文件定期会滚动出新,并删除旧的文件(已经持久化到storeFile中的数据)
  • 当HregionServer宕机后,zookeeper会先监听到,告知hmaster。
  • hmaster首先处理遗留的HLog文件,将不同hregion的HLog数据拆分,放到对应的HRegion的Hlog数据拆分,放到对应的hregion目录下。
  • hmaster将失效的hregionServer里面的数据重新分配。
  • 新hregionServer加载就hregion,发现hregion目录下有历史hlog需要处理,会复制HLog中的数据到自己的memStore中,memStore满了Flush到storeFiles。完成数据恢复。

如果喜欢本文章,请用小手点个赞~

华为 对于浩如烟海的各种产品资料,工程师不能方便、快捷地找到自己所需的学习资料,工程师不能根据自己的技能水平,有计划、系统性的分级分层进行自我学习,需要在各种资料中查找、筛选适合的产品资料、培训课程、技术案例等。我们推出的“固定核心网员工培养指南”,能够帮助一线工程师解决上述问题,方便一线工程师分层分级获取所需资料,能够按照 1 - 4 级员工技能要求,分级获取对应的知识类、知识点、技能要求、产品资料、培训课程、多媒体资料、课程方案等。   “指南”是一个集成化的IT帮助文件,它是固网员工获取学习、培训资料的统一平台渠道,通过这个文件的使用,能够方便、快捷的在 support 网站直接下载对应资料,“固网员工培养指南”包含: “ 培训大纲及课程方案 ” + “ 员工技能提升学习指引 ” + “ 培训课件 ROADMAP” + “ 多媒体课件 ” 的存放路径。   《指南》IT帮助文件左边为目录框,进入您所需目录,直到看到右边内容框的具体内容,当您第一次点击产品资料或者培训课程资料名称时,稍等片刻便会出现 support 网站的登陆界面,登陆之后您将会直接进入该资料的下载界面,下载完您所需的资料后,点击左上角的后退按钮,继续查看其他资料,此后点击资料将会直接进入下载界面,不用再登陆。由于网站上资料路径可能会经常变动,对于一些手册类资料,我们只链接到该类资料的存放路径,以防出现空链接,因此在该界面下您需要自行查找您所需要的资料进行下载。如果你在使用本帮助文件查找资料时出现空链接,无法找到对应的学习资料时,或者出现异常情况,请反馈你的意见建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值