本文主要向您展示“HBase的原理和架构是什么”。内容简单易懂,条理清晰。希望能帮你解开疑惑。让边肖带领大家学习《什么是HBase的原理和架构》一文。
一、逻辑存储模型
HBase以表格的形式存储数据,表格由行和列组成。柱分为几个柱族,
RowKey:Hbase使用RowKey来唯一区分某一行的数据。如图' rk001 '所示
列:Hbase将数据的存储按列族划分,列族下可以包含任意数量的列,实现灵活的数据访问。Hbase中的列越多越好。官方建议列数应小于或等于3。我们使用的场景通常是柱族。图中的“CF1”列族包含以下两列:“名称”和“别名”。
TimeStamp: Timestamp对于Hbase来说非常重要,因为它是实现Hbase多版本的关键。在Hbase中使用不同的timestame来标识对应于同一rowkey行的不同版本的数据。
单元格:在Hbase中由行键和列标识的存储单元称为单元格。每个单元格保存相同数据的多个版本。按版本时间戳索引。
二、物理存储模型
在HBase中,数据以表格的形式存储,表格由许多行组成,每行由行键和一个或多个列值组成。我们可以这样想。当表中有很多行时,我们根据一定的规则将表分成很多部分(例如,每500行)。那么拆分后的每个部分就是所谓的HRegion,这个HRegion作为一个整体被HMaster分配给一个RegionServer。这里可以理解为:把HMaster想象成一个老板,他把Hregions分配给某个服务器。因此,一个表被分成多个区域,并可能被分配给不同的区域服务器。我们刚才说HRegion是一个整体,也就是说不能再进一步划分了,它必须在一个RegionServer上。
三、总体架构
糖化血红蛋白酶的总体结构图如下:
包括HMaster、HRegionSever、HRegion、HLog、Store、MemStore、StoreFile、HFile等。
HBase底层依托HDFS,HDFS运营通过DFS Cilent进行。
HMaster负责将HRegions分配给hregionserver,每个hregionserver可以包含多个hregonins,多个hregonins共享HLog,用于灾难恢复。
每个HRegion由一个或多个stores、Store对应表的列族组成,每个Store包含其对应的MemStore和一个或多个Stories(这是实际数据存储文件HFile的轻量级封装)。MemStore在内存中,保存修改后的数据。当MemStore中的数据被写入文件时,它就是故事。
3.1 HMaster
HMaster的主要功能是:
将区域分配给某个区域服务器。
当区域服务器关闭时,HMaster可以将这台机器上的区域迁移到活动的区域服务器。
负载平衡服务器。
回收垃圾文件(无效日志等)。)通过h dfs的dfs客户端界面
注意:HMaster没有单点问题,在HBase中可以启动多个HMaster。总有一位大师通过动物园管理员的大师选举机制。
3.2 HRegionServer
(1)维护HMaster分配给它的hregions,并处理这些hregIOns的io请求,也就是说客户端直接与HRegionServer进行处理。(从图中也可以看出)
负责分割操作过程中变得过大的区域。
3.3 HRegion
让我们来看看HRegion的结构:
每个区域由几个商店组成,每个商店拥有一个列族。如果表有多个列族,则有多个存储。每个存储由一个内存存储和几个存储文件组成。MemStore是内存中存储的内容,是写入文件后的storefile。基础存储文件以HFile格式保存。
3.4 HLog
HLog (wallog): wal表示提前写日志,用于灾难恢复。HLOG记录数据的变化,包括序列号和实际数据,因此一旦区域服务器关闭,它就可以从日志中回滚尚未持久化的数据。
3.5 HFile
糖化血红蛋白酶的数据最终以HFile的形式存储在HDFS,糖化血红蛋白酶的HFile有自己的格式。
以上就是文章《HBase的原理和架构是什么》的全部内容,感谢阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/138993.html