前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HBase基本原理

HBase基本原理

作者头像
用户9615083
发布2022-12-25 14:29:51
5070
发布2022-12-25 14:29:51
举报

# HBase基本原理

# Region定位

# region

01
01

客户端在插入,删除,查询数据时需要知道哪个Region服务器上存有自己所需的数据,这个查找Region的过程称之为Region定位。

# META表

Region标识符,可以唯一标识每个Region,region标识符由‘表名、开始行键、RegionID’组成。为了定位每个Region所在的位置,就可以构建一张映射表,映射表的每个条目包含两项内容,一个是大数据存Region标识符,另一个是Region服务器标识,这个条目就表示储与管理Region和Region服务器之间的对应关系,从而就可以知道某个Region被保存在哪个Region服务器中。

02
02

# Region定位

  1. 客户端通过Zookeeper获取到Meta表分区存储的地址
  2. 然后在对应Region服务器上获取meta表的信息,得到所需表和行键所在的Region信息
  3. 然后在从Region服务器上找到所需的数据。 一般客户端获取到Region信息后会进行缓存,下次再查询不必从Zookeeper开始寻址。
03
03

# 数据存储与读取

04
04

HBase的核心模块是Region服务器。

Region服务器由多个Region块构成,Region块中存储的一系列连续的数据集。

Region服务器主要构成部分是:HLog和Region块

HLog记录该Region的操作日志。

Region对象由多个Store组成,每个Store对应当前分区中的一个列族,每个Store管理一块内存,即MemStore

在写数据的时候,数据先写入MemStore,当MemStore中的数据达到一定条件时会写入到StoreFile文件中,因此每个Store包含若干个StoreFile文件。StoreFile文件对应HDFS中的HFile文件。

# MemStore

当Region服务器收到写请求的时候,Region服务器会将请求转至相应的Region。数据首先写入到Memstore,然后当到达一定的阀值的时候,Memstore中的数据会被刷到HFile中进行持久性存储。

# Store

Store是Region服务器的核心,存储的是同一个列族下的数据,大数据存每个Store包含有一块MemStore和0个或多个StoreFile。

StoreFile是HBase中最小的数据存储单元。

Store存储是HBase存储的核心,其中由两部分组成,一部分是MemStore,一部分是StoreFile。MemStore是Sorted Memory Buffer(内存写缓存),用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile(底层实现是HFile), 当StoreFile文件数量增长到一定阈值,会触发Compaction合并操作。

# Store的合并分裂

05
05

# HFile

HFile里面的每个键值对就是一个简单的byte数组。但是这个byte数组里面包含了很多项,并且有固定的结构。

06
06

# HBase写文件流程

  • 客户端首先访问zookeeper,从meta表得到写入数据对应的region信息和相大数据存应的region服务器
  • 找到相应的region服务器,把数据分别写到HLog和MemStore上一份
  • MemStore达到一个阈值后则把数据刷成一个StoreFile文件。(若MemStore中的数据有丢失,则可以从HLog上恢复)
  • 当多个StoreFile文件达到一定的大小后,会触发Compact合并操作,合并为一个StoreFile
  • 当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split分裂),并由Hmaster分配到相应的HRegionServer,实现负载均衡
  • 客户端先访问zookeeper,从meta表读取Region的信息对应的服务器
  • 客户端向对应Region服务器发送读取数据的请求,Region接收请求后,先从MemStore找数据,如果没有,再到StoreFile上读取,然后将数据返回给客户端。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # HBase基本原理
    • # Region定位
      • # region
      • # META表
      • # Region定位
    • # 数据存储与读取
      • # MemStore
      • # Store
      • # Store的合并分裂
      • # HFile
      • # HBase写文件流程
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档