📜  Hadoop 中的 HBase 模型

📅  最后修改于: 2021-10-27 06:40:09             🧑  作者: Mango

在这篇文章中,我们将讨论什么是 Hbase,不同类型的数据存储方法,为什么 HBase 比其他数据库更受欢迎,HBase 的优点和问题。 所以,让我们深入了解这篇文章来理解这个概念好。

数据库

HBase是一个开源平台的数据库,是谷歌Big Table存储架构的实现。 HBase 数据库是面向列的,因此它与其他数据库不同。 Hbase 的独特之处之一是它不关心数据类型,因为我们可以将同一列的不同数据类型的数据存储在不同的行中。它包含以键值格式维护数据的不同表集。 Hbase 最适合稀疏数据集,这在大数据的情况下非常常见。它可用于管理结构化和半结构化数据,并且具有许多内置功能,例如:

  • 可扩展性
  • 版本控制
  • 压缩
  • 垃圾收集

有两种类型的数据存储介质:

  1. 面向行
  2. 面向列

面向行:

在面向行的数据存储方法中,数据一次存储和检索一行。这可能会导致几个问题,假设我们只需要行中的部分数据,但根据这种方法,即使您不需要它,您也必须检索完整的行。除此之外,这种方法还有助于在 OLTP 系统操作的情况下获得帮助,并有助于轻松读取和写入记录。但在我们对完整数据库执行操作的情况下效率较低。

面向列:

在面向列的数据存储方法中,数据是基于列进行存储和检索的。这样就解决了我们在面向行的方法中面临的问题,因为在面向列的方法中,我们可以借助相应的列从整个数据集中过滤掉我们需要的数据。在面向列的方法中,读取和写入操作比其他方法慢,但在对整个数据库执行操作时可以高效,因此它允许非常高的压缩率。

HBase 的偏好:

  • 与其他数据库相比,Hbase 可以非常轻松地处理大型数据库,并以高效的方式执行操作。
  • Hbase 中预期的数据是高度结构化的,可以很容易地适应明确定义的模式。
  • 它很容易并且适用于低延迟操作。
  • 它提供对数千条记录中特定行的访问。
  • Hbase 中的数据可以通过 shell 命令或通过Java的客户端 API 访问。
  • 其他数据库在大型数据库时变得非常慢,但在 Hbase 的情况下,它以有限的方式处理大型数据库。

HBase 的优点:

  • Hbase 为与 Hadoop MapReduce 关联的分析提供了强大的功能。
  • 它能够处理非常大量的数据库。
  • Hbase 提供了与其他用户共享数据库的功能。
  • 与其他传统数据库相比,有许多操作(例如数据读取和处理)将花费更少的时间。
  • 每当出现故障或负载共享问题时,Hbase 都可以自动从问题中恢复,因为它是内部分布式的。
  • 在 Hbase 中,线性和模块化形式都支持可扩展性。
  • 它提供了很大的一致性。

HBase 中的问题:

  • 在 HBase 中,操作期间分配的内存块要求和硬件要求是昂贵的。
  • 在 HBase 中存储二进制格式的大文件非常困难。
  • HBase 中没有查询优化器,因此它无法执行 SQL 功能,也不支持 SQL 结构。
  • 尽管 Hbase 提供了很多功能,但它不能完全替代传统模型,因为 HBase 仍然不支持某些传统功能。
  • Hbase 不提供任何事务支持。
  • HBase 不支持任何默认索引功能。