当前位置: 首页 > 网络应用技术

什么是HBase?终于有人明白

时间:2023-03-08 14:50:32 网络应用技术

  HBASE是针对专栏作家的分布式数据库,它来自Google的Bigtable Paper.HBase的基础存储基于HDFS实现,簇的管理基于Zookeeper.HBase的良好分布式架构是为快速存储和随机访问而设计的。大量数据。数据复制机制和分区机制可以轻松实现在线容量扩展,容量收缩和数据灾难耐受性。存储最常用的数据库方案。

  HBase的可伸缩性主要反映在两个方面。一种是基于计算功能的扩展。通过增加区域性节点的数量,HBase的上层处理能力增加;数据磁极节点的数量扩展了存储层以增强HBase的数据存储能力。(扩展:HDFS的工作机理和原理的详细说明)

  HBASE作为开源分布式键值数据库,是实时存储和快速访问PB级数据的主要角色。这主要是由于上述易于扩展的特征,使HBase商店大量数据大量数据通过扩展。

  HBASE基于列表存储数据。在列表下方可能有很多列。专栏存储的最大好处是,其数据根据一列存储在表中,因此查询仅需要几个字段,它可以大大减少读取的数据量。

  WAL机制可以保证,当数据编写时,由于群集异常不会丢失。数据机制可以确保当集群中存在严重问题时,数据将不会丢失或损坏。HBase的底层使用HDFS,HDFS本身具有备份。

  在HBASE的列中,可以指定任何数量的列。对于空列不占据存储空间,表格设计非常稀疏。

  HBASE可以将数据存储在本地文件系统或HDFS文件系统中。在生产环境中,HBASE通常在HDFS上运行,并将HDFS用作存储设施的基础。HBASE通过HBase Client提供的Java API访问HBASE数据库完成数据编写和读取。HBASE簇由HMASTER,区域服务器和动物园管理器组成。

  HBASE是针对专栏作家的分布式数据库。数据结构化的数据结构有利于数据缓存和查询。HBASE中的表是松散存储的,因此用户可以动态地定义数据的不同列。HBase中的主键的数据进行了排序。同时,HBASE将将表的主要键分为多个区域,并将其存储在不同的区域服务器上,以完成分布式存储并读取数据。

  HBase基于列存储数据,并且列家族对应于物理存储上的HFILE。指定创建表时,列部落包括图书馆部落的数量。

  哥伦布家族是人们的名单。HBASE基于分类数据的物理存储。列部落可以包含多个列。

  通常,相同类型的列将放置在列部落中,每个列家族都有一组存储属性:

  HBASE在创建表格时必须指定列表。链接的人越多,表格正式推荐的列表数量就越好。过多的专栏部落不利于HBase数据的管理和索引。

  Rowkey的概念与关系数据库中的主要密钥相似。HBase使用Rowkey仅识别行的数据。

  有三种访问HBase数据的方法:

  HBASE根据Rowkey的不同范围为不同区域将表中的数据划分,并且每个区域均负责一定范围的数据存储和访问。

  在每个表的开头,只有一个区域。随着数据插入表中,该区域继续增加。当增加到一个阈值时,区域将分为两个新区域。当表中的行数继续增加时,将会越来越多的区域。

  此外,区域是HBASE中分布式存储和负载平衡的最小单元,并且可以在不同的Hregion服务器上分发不同的区域。但是,Hregion不会分配到多个服务器。

  这样,即使有一个包含数万数据的表,由于数据被分为不同的区域,每个区域都可以独立编写和查询。访问的速度不会降低太多。

  TimessTamp是实现HBase多个版本的关键。在HBase中,使用不同的TimessTamp识别与同一rowkey相对应的数据的不同版本。同一RowKey数据根据时间戳的倒置顺序排列。默认查询是最新版本。当然,用户还可以指定TimessTamp的值以读取数据的指定版本。

  我想知道是否有疑问的小朋友,为什么专栏作家存储在OLAP领域被广泛使用。与行存储相比,它的优势是什么?今天我们将将这两种存储方法的差异进行比较。

  实际上,专栏作家的存储不是一项新技术,可以追溯到1983年的纸台。所有将数据连续存储。

  直到近年来分析数据库(OLAP)的兴起之前,专栏作家存储的概念已经流行。与数据库相关的数据库(例如HBase和Cassandra)都将数据存储在列中。

  对于OLAP场景,大多数都会添加和删除,删除和修改的操作,因此,将数据存储在磁盘上的数据是一个不错的选择。

  当查询和基于需求字段返回结果时,由于这些字段埋在各个数据中,因此必须读取该行的每个完整记录。旋转地址操作的大量磁盘大大降低了阅读效率。

  例如,下图是用于员工信息的EMP表。

  数据存储在磁盘上的磁盘上,同一行的数据旁边存储。

  对于EMP表,您必须查询部门所有员工的名称。

  由于该部门的值存储在磁盘中,因此在查询过程中,需要多次磁盘才能完成数据的定位和返回结果。

  对于OLAP场景,典型的查询需要遍历整个表以执行操作,排序和聚合操作,以便不再存在在生产线存储中存储整个记录的优势。此外,分析SQL通常不使用全部使用列,仅适用于它所需的某些列,该行无事可做的行必须参与扫描。

  但是,在专栏文章的存储中,相同的列数据旁边存储在其旁边,如下图所示。

  然后,当根据需求字段进行查询和返回结果时,不允许扫描每条数据行。根据数据查找所需数据的数据,磁盘数量少数次,并且性能将得到改善。

  它仍然是上面示例中的查询。由于列存储中的部门的值存储在磁盘上,因此磁盘只需要查询并返回结果。

  线路存储不仅具有按需查询的优势来提高效率。由于同一列的数据属于同一类型,例如数值类型,字符串类型等,因此相似性很高。您还可以选择使用适当的编码压缩来减少数据。存储空间,从而减少IO以提高阅读性能。

  通常,线路存储和专栏文章存储没有说谁比任何人都更好,只能说谁更适合于哪种应用程序。

  作为NOSQL数据库的代表,HBASE属于三个驾驶运输之一的BOGTABLE的相应实现。HBase的出现弥补了大数据快速查询能力的空缺。我们还在我们面前引入了HBase的数据模型。有兴趣的朋友可以看一下。

  HBASE的核心体系结构由五个部分,即HBase客户端,HMASTER,区域服务器,Zookeeper和HDFS.TSSS组成,如下图所示。

  让我们介绍HBase体系结构的每个部分。

  HBASE客户端为用户提供了用于访问HBASE的接口,该接口可以通过元数据表位于目标数据的区域服务器。此外,HBASE客户端还维护相应的缓存,以加速HBASE的访问,例如缓存元数据的信息。

  HMaster是HBase群集的主要节点。它负责整个集群的管理。主要职责如下:

  区域服务器直接连接用户的读取请求。这是一个真正的节点。主要职责如下。

  与HMASTER的协调:当区域服务器降低时,ZK将通知大师失败。主人将将其负责该区域的区域转移到其他区域服务器,并且在离线区域服务器上的数据中不会持续很长时间到磁盘中不持久的数据。

  让我介绍详细的区域服务器数据存储的基本结构,如下图所示。A区域服务器包含多个区域,此处仅显示一个区域。

  当区域中所有仓库的所有尺寸和数量增加到一个阈值以上时,HMASTER将将当前区域分为两个,并将其分配到其他区域服务器以达到负载平衡。

  HBASE完成选举HMaster,监视区域服务器,并通过Zookeeper维护元数据群集配置。主要职责如下:

  HDFS为HBASE提供基础数据存储服务,同时为HBASE提供了高可用的支持。HBase将HLOG存储在HDFS上。当服务器异常停机时,可以更换HLOG以还原数据。

  了解HBASE如何编写数据,然后解释一个更经典的访谈问题。

  HBASE将根据Memstore配置配置的刷牙策略将数据刷新到库存文件,以完成数据持久存储。

  WAL(写入数据)预撰写日志是HBase的Log of HBASE ZIONSERVER,用于在处理数据插入和删除过程中记录操作内容。easttime put,delete等,首先将其数据写入与HLOG文件相对应的HLOG文件地区服务器。

  WAL是存储在HDFS上的耐用文件。当数据到达时,当数据到达区域时,它将写入WAL,然后加载到memstore。在这种方式上,即使区域停机,操作也没有时间执行耐用性,您可以加载操作重新启动时从WAL执行它。

  因此,我们可以从写作过程中看到,数据在进入HFILE之前已一直持续到WAL,WAL在HDF上。Memstore在内存中。越来越多的成员不会改善写作表现。为什么为什么?仍然从WAL到Memstore,然后写HFILE?

  因此,Memstore的重要性是根据Rowkey词典顺序维护数据,而不是进行缓存以提高写作效率。

  HBASE客户端要求Zookeeper获取元数据表所在的区域服务器的地址。

  HBASE客户端请求geigionserver获得需要访问的元数据,该元数据需要查询哪个区域服务器位于哪个区域服务器中的区域。以及表区域信息和元表的位置信息在客户端的元缓存中慢慢存在,下次访问很方便。

  HBASE客户端请求数据所在的区域服务器以获取所需的数据。区域首先在Memstore中找到它,如果您击中它;如果您无法在Memstore中找到它,则可以确定数据是否通过BlowFilter存在;如果存在,请扫描结果:库层并将结果返回给客户端。

  HBASE的数据删除操作不会立即从磁盘中删除数据,因为HBASE的数据通常存储在HDF中,而HDFS仅允许新的或添加的数据文件。

  执行删除操作后,HBase新插入一个新的键值数据,但是keytype = delete,这意味着将数据删除直到Major_Compaction操作发生,该数据将真正从磁盘中删除。

  HBase是按顺序编写的一种删除删除的方法,因此很容易获得大量数据的快速删除,有效地避免了查找数据,执行删除和重建大量数据中的复杂过程。

  原始:https://juejin.cn/post/7103445371782709284