您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
HBase主要运行机制(物理存储和逻辑架构)
 
 
 
  1577  次浏览      20
2021-1-21 
 
编辑推荐:
本节将对 HBase 的主要运行机制进行简单介绍:HBase 的物理存储和HBase 的逻辑架构两方面。
本文来自c.biancheng.net,由火龙果软件Anna编辑、推荐。

HBase 的物理存储

HBase 表中的所有行都是按照行键的字典序排列的。因为一张表中包含的行的数量非常多,有时候会高达几亿行,所以需要分布存储到多台服务器上。

因此,当一张表的行太多的时候,HBase 就会根据行键的值对表中的行进行分区,每个行区间构成一个“分区(Region)”,包含了位于某个值域区间内的所有数据,如图 1 所示。

图 1 HBase的Region存储模式图

Region 是按大小分割的,每个表一开始只有二个 Region,随着数据不断插入到表中,Region 不断增大,当增大到一个阈值的时候,Region 就会等分为两个新的 Region。当表中的行不断增多时,就会有越来越多的 Region,如图 2 所示。

图 2 HBase的Region分裂示意

Region 是 HBase 中数据分发和负载均衡的最小单元,默认大小是 100MB 到 200MB。不同的 Region 可以分布在不同的 Region Server 上,但一个 Region 不会拆分到多个 Region Server 上。每个 Region Server 负责管理一个 Region 集合。如图 3 所示。

图 3 HBase的Region分布模式

Region 是 HBase 在 Region Server 上数据分发的最小单元,但并不是存储的最小单元。事实上,每个 Region 由一个或者多个 Store 组成,每个 Store 保存一个列族的数据。每个 Store 又由一个 memStore 和 0 至多个 Store File 组成,如图 4 所示。Store File 以 HFile 格式保存在 HDFS 上。

图 4 HBase的Region存储模式

HBase 的逻辑架构

在分布式的生产环境中,HBase 需要运行在 HDFS 之上,以 HDFS 作为其基础的存储设施。HBase 的上层是访问数据的 Java API 层,供应用访问存储在 HBase 中的数据。HBase 的集群主要由 Master、Region Server 和 Zookeeper 组成,具体模块如图 5 所示。

图 5 HBase的系统架构

1)Master

Master 主要负责表和 Region 的管理工作。

表的管理工作主要是负责完成增加表、删除表、修改表和查询表等操作。

Region 的管理工作更复杂一些,Master 需要负责分配 Region 给 Region Server,协调多个 Region Server,检测各个 Region Server 的状态,并平衡 Region Server 之间的负载。

当 Region 分裂或合并之后,Master 负责重新调整 Region 的布局。如果某个 Region Server 发生故障,Master 需要负责把故障 Region Server 上的 Region 迁移到其他 Region Server 上。

HBase 允许多个 Master 结点共存,但是这需要 Zookeeper 进行协调。当多个 Master 结点共存时,只有一个 Master 是提供服务的,其他的 Master 结点处于待命的状态。当正在工作的 Master 结点宕机时,其他的 Master 则会接管 HBase 的集群。

RegionServer

HBase 有许多个 Region Server,每个 Region Server 又包含多个 Region。Region Server 是 HBase 最核心的模块,负责维护 Master 分配给它的 Region 集合,并处理对这些 Region 的读写操作。Client 直接与 Region Server 连接,并经过通信获取 HBase 中的数据。

HBase 釆用 HDFS 作为底层存储文件系统,Region Server 需要向 HDFS 写入数据,并利用 HDFS 提供可靠稳定的数据存储。Region Server 并不需要提供数据复制和维护数据副本的功能。

3)Zookeeper

Zookeeper 的作用对 HBase 很重要。首先,Zookeeper 是 HBase Master 的高可用性(High Available,HA)解决方案。也就是说,Zookeeper 保证了至少有一个 HBase Master 处于运行状态。

Zookeeper 同时负责 Region 和 Region Server 的注册。HBase 集群的 Master 是整个集群的管理者,它必须知道每个 Region Server 的状态。

HBase 就是使用 Zookeeper 来管理 Region Server 状态的。每个 Region Server 都向 Zookeeper 注册,由 Zookeeper 实时监控每个 Region Server 的状态,并通知给 Master。这样,Master 就可以通过 Zookeeper 随时感知各个 Region Server 的工作状态。

< HBase ShellHBase常用Java API >

 
   
1577 次浏览       20
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训
最新活动计划
软件架构设计方法、案例与实践 8-23[特惠]
Linux内核编程及设备驱动 8-15[北京]
Python、数据分析与机器学习 8-23[特惠]
嵌入式软件架构设计 8-22[线上]
QT应用开发 9-5[北京]
 
最新文章
大数据平台下的数据治理
如何设计实时数据平台(技术篇)
大数据资产管理总体框架概述
Kafka架构和原理
ELK多种架构及优劣
最新课程
大数据平台搭建与高性能计算
大数据平台架构与应用实战
大数据系统运维
大数据分析与管理
Python及数据分析
更多...   
成功案例
某通信设备企业 Python数据分析与挖掘
某银行 人工智能+Python+大数据
北京 Python及数据分析
神龙汽车 大数据技术平台-Hadoop
中国电信 大数据时代与现代企业的数据化运营实践
更多...