首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HBase之核心功能模块

【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[37]篇文章,欢迎阅读和收藏】

1术语解释

Client:HBase 的客户端

HMaster:HBase 的主节点,主要负责管理和维护 HBase 表的分区信息,维护 Region 服务器列表,分配 Region ,负载均衡

HRegionServer:HBase 中负责存储和维护分配给自己的 Region ,处理来自客户端的读写请求,是 HBase 最核心的模块

HRegion:HBase 中用来承载数据的,

HLog:HBase 的日志模块

HStore:HBase 的存储核心

MemStore:Stored Memory Buffer ,内存缓冲区

StoreFile:HBase 的存储基本单位,一个 StoreFile 相当于一个列族

HFile:HBase 的数据是以特定的文件格式固化到分布式文件系统中,该文件格式称之为 Hfile

MVCC:Multi-Version Concurrency Control 多版本并发控制。在 MVCC 协议中,每个用户在连接数据库时看到的是一个具有一致性状态的镜像,每个事务在提交到数据库之前对其他用户均是不可见的。当事务需要更新数据时,不会直接覆盖以前的数据,而是生成一个新的版本的数据,因此一条数据会有多个版本存储,但是同一时刻只有最新的版本号是有效的。因此,读的时候就可以保证总是以当前时刻的版本的数据可以被读到,不论这条数据后来是否被修改或删除。

WAL:Write Ahead Log 预写日志,即在写数据前先写 Log ,用来保证数据安全;如果数据写 Log 成功,但是并没有固化下来,此时如果出现宕机,则可以通过 Log 来恢复数据。

2核心功能模块的对应关系

HBase各组件的关系:

各组件数目的对应关系如下:

HMaster:HRegionserver=1:N

HRegionserver:HLog=1:1

HRegionserver:HRegion=1:N

HRegion:Store=1:N

Store:Memstore=1:1

Store:StoreFile=1:N

StoreFile:HFile=1:1

HBase 中的数据最终存储在 DataNode 的块 Block 上。

3核心模块介绍

3.1Zookeeper

Zookeeper 的作用主要有:

Ø提供分布式锁的服务,作为多 Master 竞争主 Master 角色时的裁判。

Ø提供事件监听机制,当主 Master 出故障时通知备 Master 接管。

Ø微型数据库角色,存放了 ResionServer 的地址。

3.2HMaster

Master 进程有主备角色,集群可配置多个 Master 角色,主 Master 只有一个,集群启动时各 Master 竞争获得主 Master 角色,备 Master 处于休眠状态。作用主要有:

Ø负责管理所有的 RegionServer ,包括:新 RegionServer 的注册、 RegionServer Failover 处理(故障转移 Region )。

Ø负责表的增删改和集群操作。

Ø负责所有 Region 的转移操作,包括:新表创建时 Region 的分配、负载均衡、 RegionServer 故障时对 Region 的接管。

3.3HRegionServer

RegionServer 是 HBase 的数据服务进程,管理 Region ,负责处理用户数据的读写请求,其实用户数据的读写都是和 RegionServer 上的 Region 进行交互的, Region 可以在 RegionServer 之间发生转换。

3.4HRegion

Region 是按照 RowKey 值的字典顺序范围横向划分为一个个的子表,实现分布式存储,是 HBase 分布式存储的最基本单元。一个 region 由 [startkey,endkey) 表示,每一个 Region 都关联一个 Key 值范围,即一个使用 StartKey (包含)和 EndKey (不包含)描述的区间。事实上,每一个 Region 仅仅记录 StartKey 就可以了,因为它的 EndKey 就是下一个 Region 的 StartKey 。

Region 分为元数据 Region ( Meta Region )和用户 Region ( User Region )两类:Meta Region 记录了每一个 User Region 的路由信息。

如果要读写 Region 的路由,需要先找寻 Meta Region 地址,再通过 Meta Region 找寻 User Region 的地址。

Zookeeper 文件记录了 -ROOT- 表的位置,根数据表( -ROOT- 表)记录了所有元数据的具体位置。寻址过程客户端只需要询问 Zookeeper 服务器,不需要连接 Master 服务器。

3.5HRegion内部组成

Region 是 hbase 中分布式存储和负载均衡的最小单元,不同的 regioon 分布到不同的 regionserver 上,但 Region 不会拆分到不同的 Region Server 上。

Region 是分布式存储的最小单元,但不是存储的最小的单元。

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200121A0D5L300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券