HBase核心功能模块--读书笔记





客户端Client

 

客户端 Client 是整个 HBase 系统的入口。使用者直接通过客户端操作 HBase。客户端

使用 HBase 的 RPC 机制与 HMaster 和 RegionServer进行通信。对于管理类操作Client 与

HMaster 进行 RPC 通信对于数据读写类操作Client 与RegionServer 进行 RPC 交互。这里

客户端可以是多个并不限定是原生 Java 接口还有 Thrift、Avro、Rest等客户端模式甚

MapReduce 也可以算作一种客户端。

 

 

协调服务组件Zookeeper

 

ZooKeeper Quorum队列负责管理 HBase 中多 HMaster 的选举、服务器之间状态同

步等。再具体一些就是HBase ZooKeeper 实例负责的协调工作有存储 HBase 元数据信

息、实时监控 RegionServer、存储所有 Region 的寻址入口当然还有最常见的功能就是保证

HBase 集群中只有一个HMaster 节点

 

主节点Hmaster

 

HMaster 没有单点问题在HBase 中可以启动多个 HMaster通过ZooKeeper Master

选举机制保证总有一个 Master 正常运行并提供服务其他 HMaster 作为备选时刻准备当目

HMaster 出现问题时提供服务。HMaster 主要负责Table Region 的管理工作

 

管理用户对 Table 的增、删、改、查操作。

 

管理 RegionServer 的负载均衡调整 Region 分布。

 

Region 分裂后负责新 Region 的分配。

 

RegionServer 死机后负责失效 RegionServer 上的 Region 迁移。

 

 

Region 节点 HRegionServer

 

 

HRegionServer 主要负责响应用户 I/O 请求向 HDFS 文件系统中读写数据是 HBase

中最核心的模块。HRegionServer 内部管理了一系列 HRegion对象每个 HRegion 对应了

Table 中的一个RegionHRegion 由多个HStore 组成每个 HStore 对应了Table 中的一个

Column Family 的存储。可以看出每个 Column Family 其实就是一个集中的存储单元因

此最好将具备共同 I/O 特性的列放在一个 Column Family 中这样能保证读写的高效性。

 

 

HStore HBase MemStore

StoreFileMemStore Sorted Memory Buffer用户写入的数据首先会放入 MemStore 中当

MemStore 满了以后会缓冲flush成一个 StoreFile底层实现是 HFile StoreFile 文件数

量增长到一定阈值会触发 Compact 操作将多个StoreFiles 合并成一个 StoreFile在合并

过程中会进行版本合并和数据删除因此可以看出 HBase 其实只有增加数据所有的更新和

删除操作都是在后续的 Compact 过程中进行的这使得用户的写操作只要进入内存中就可以

立即返回保证了 HBase I/O 的高性能。








StoreFiles 在触发 Compact 操作后会逐步形成越来越大的 StoreFile当单个StoreFile

大小超过一定阈值后会触发 Split 操作同时把当前Region 分裂成 2 Region Region

会下线新分裂的 2 个子 Region 会被HMaster 分配到相应的 HRegionServer 上使得原先 1

Region 的压力得以分流到 2 Region 上。

 

每个 HRegionServer 中都有一个 HLog 对象HLog 是一个实现 Write Ahead Log 的类

在每次用户操作写入 MemStore 的同时也会写一份数据到HLog 文件中HLog 文件定期

会滚动出新并删除旧的文件已持久化到 StoreFile 中的数据 。在 HRegionServer 意外终

止后HMaster 会通过 ZooKeeper 感知到首先处理遗留的 HLog 文件将其中不同 Region

Log 数据进行拆分分别放到相应 Region 的目录下然后再将失效的 Region 重新分配

领取到这些 Region HRegionServer 在加载 Region 的过程中会发现有历史 HLog 需要处

理因此会将 HLog 中的数据回放到 MemStore 中然后缓冲flush StoreFiles完成数

据恢复。



优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/240683

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。