暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

2022年最常见的 Apache HBase 面试问题

原创 小小亮 2022-08-25
588

介绍

HBase 是一个面向列的非关系型数据库管理系统,在 Hadoop 分布式文件系统 (HDFS) 上运行。HBase 提供了一种存储稀疏数据集的容错方式,这在几个大数据用例中很普遍。它非常适合实时数据处理或对大数据量的随机读/写访问。与 SQL 等关系数据库相比,HBase 不提供该数据库提供的结构化查询语言。

Apache HBase
来源:hbase.apache.org

HBase 是一种类似于 Google 的“大表”的数据模型,可以轻松快速地获取大量结构化数据。它包含一组以键值格式存储数据的表。程序员可以在任何他们想要的编程语言中使用 Hbase 的 API。可以使用 Hadoop 生态系统的这个元素实时读取和写入 Hadoop 文件系统中的数据。

无论是直接还是通过 HBase,数据都可以存储在 HDFS 中。数据消费者使用 HBase 随机读取/访问 HDFS 数据。对 Hadoop 文件系统的读写访问由 HBase 提供。

特征

  • 可以随时将任意数量的列添加到水平可伸缩性。

  • 多维排序映射以分布式方式通过行键、列键和时间戳进行索引。

  • 在系统发生故障的情况下,管理员可以使用自动故障转移将数据处理自动转换到备用系统。

  • 建立在 Hadoop 分布式文件系统之上,每个命令和 Java 代码在内部实现 Map/Reduce 以完成操作。

  • 通常称为键值存储、面向列族的数据库或用于存储地图的版本化地图。

  • 它基本上是一个用于存储和检索随机访问数据的系统。

  • 它不强加数据元素之间的关系。

  • 它旨在在基于商品硬件的计算机集群上运行。

面试问题

1. Apache HBase 的目的是什么?

加载图像

成为全栈数据科学家
在您的 AI ML 职业生涯中取得领先 | 无需先决条件下载手册

当需要对大数据进行随机、实时的读/写访问时,使用 Apache HBase。该项目的目标是在商用硬件集群上托管具有数十亿行和数百万列的表。Apache HBase 是一个分布式、版本化、非关系型、开源数据库,灵感来自 Google 的 Bigtable:Chang 等人的结构化数据的分布式存储系统。Apache HBase 在 Hadoop 和 HDFS 之上提供类似于 Bigtable 的功能,就像 Bigtable 利用 Google 文件系统提供的分布式数据存储一样。

2、HBase的主要元素有哪些?

HBase 的主要元素是:

  • Zookeeper:它执行客户端和 HBase Master 之间的协调工作。

  • HBase Master:HBase Master 密切关注 Region Server。

  • RegionServer:RegionServer负责监控Region。

  • Region:它包含内存数据存储(MemStore)和Hfile。

  • 目录表:目录中的表由 ROOT 和 META 组成。

3. 检查 HBase 中过滤器的用途。

过滤器被添加到 Apache HBase 0.92 以使用户更容易通过 Shell 或 Thrift 访问 HBase。因此,它们可以处理您的服务器端过滤要求。还有美化过滤器,可以让您更好地控制过滤器产生的数据。以下是一些 HBase 过滤器示例:

  • Bloom Filter:一种确定 HFile 是否包含给定行或单元格的节省空间的方法,它通常用于实时查询。

  • 页面过滤器:页面过滤器可以通过接受页面大小作为参数来优化特定 HRegions 的扫描。


4. HBase 如何处理失败的写入?

在大型分布式系统中,故障很常见,HBase 也不例外。

如果托管尚未耗尽的 MemStore 的服务器崩溃。内存中的数据,但尚未持久化,已经消失了。HBase 通过在写操作完成之前写入 WAL 来防止这种情况。中包含的每台服务器。

HBase 集群维护一个 WAL 来记录发生的变化。WAL 是 WAL 下文件系统上的一个文件。在成功写入新的 WAL 条目之前,写入不会成功。这一承诺确保 HBase 与支持文件系统一样健壮。Hadoop 分布式文件系统(HDFS)大部分时间都支持 HBase。如果 HBase 发生故障,则可以通过重放 WAL 来检索尚未从 MemStore 刷新到 HFile 的数据。

 

5. 描述 HBase 中的删除。HBase 支持哪三种类型的 tombstone 标记?

当 HBase 中删除一个单元格时,并没有真正删除数据;相反,放置了一个墓碑标记,使已删除的单元格无法访问。已删除的 HBase 在压缩期间被删除。

墓碑标记分为三种类型:

  • 版本删除标记:它标识要删除的列的单个版本。

  • 列删除标记:它标记删除列的每个版本。

  • 族删除标记:它标记列族中的每一列以进行删除。

6. HBase 与 Cassandra 相比如何?

Cassandra 和 HBase 都是 NoSQL 数据库,这个词有几个定义。通常,它表示不能使用 SQL 来操作数据库。尽管如此,Cassandra 已经实现了 CQL(Cassandra 查询语言),其语法显然是基于 SQL 的。

两者都旨在管理庞大的数据集合。根据 HBase 文档,HBase 数据库应包含数亿条记录,最好是数十亿条记录。如果没有,您应该继续使用关系数据库管理系统。

不仅在如何保存数据方面,而且在如何访问数据方面;两者都是分布式数据库。客户端可以连接到任何集群节点并可以访问任何数据。

HBase 缺乏对二级索引的原生支持,但提供了一系列启用二级索引功能的方法。这些在 HBase 和 HBase 社区的在线参考指南中进行了概述。

7. 当先前填充的数据库中列族的块大小发生变化时会发生什么?

修改列族的块大小时,新数据会占用新的块大小,但旧数据会停留在旧的块大小。在数据压缩过程中,旧数据将采用新的块大小。随着新文件的刷新,它们的块大小会发生变化,尽管当前数据将保持准确读取。在下一次主要数据压缩之后,所有数据都必须转换为新的块大小。

8. 为什么要使用 HBase?

  • 高存储容量系统

  • 分布式布局以容纳大桌子

  • 面向列的存储

  • 水平可扩展

  • 卓越的功能和可用性

  • HBase 的目标是至少数百万列、数千个版本和数十亿行。

  • 与 HDFS(Hadoop 分布式文件系统)不同,它提供随机实时的 CRUD 操作。

9、什么是Hbase单机模式?

当用户不需要 Hbase 访问 HDFS 时,可以启用此选项。它基本上是 Hbase 中的默认模式,通常允许用户在选择时使用它。当用户选择此选项时,Hbase 使用文件系统而不是 HDFS。

在进行一些关键活动时,使用此模式可以节省大量时间。在此模式下,您还可以对数据施加或删除各种时间限制。

10.对比HBase和Hive?

Hive可以使精通 SQL 的用户能够执行 MapReduce 作业。由于它是 JDBC 兼容的,它还与当前基于 SQL 的应用程序兼容。由于 Hive 查询默认遍历表的所有内容,因此它们的执行可能很耗时。尽管如此,Hive 的分区功能可以限制数据量。分区允许跨存储在不同文件夹中的数据执行过滤查询,并仅读取与查询匹配的数据。例如,如果文件名包含日期格式,则它可能仅用于处理在特定日期之间生成的文件。

HBase通过将数据存储为键/值来运行。它提供了四个核心操作:put 用于添加或更新行,scan 用于检索一系列单元格,get 用于返回特定行的单元格,以及 delete 用于删除行、列或列变体。提供版本控制以检索过去的数据值(可以不时删除历史记录以通过 HBase 压缩清理空间)。尽管 HBase 包含表,但模式仅对表和列族是必需的,而不是单个列,并且支持增量/计数器功能。

MapReduce 任务在类似 SQL 的引擎 Hive 上运行;HBase 是一个 NoSQL 键/值数据库,在 Hadoop 上运行。

结论

本文提供了有关 HBase(一种面向列的非关系型数据库管理系统)的信息,涵盖了各种主题,希望这些信息对您有所帮助,并为您现在为接下来的采访做好准备。以下是这篇文章的一些最突出的观点:

  • 什么是 HBase,它有什么特点?
  • HBase 过滤器和模式可用。
  • HBase 与 Hive 和 Cassandra 的比较,以及基础、中级和困难级别的许多其他主题。


原文标题:Most Frequently Asked Apache HBase Interview Questions

原文作者:Prashant Sharma

原文链接:https://www.analyticsvidhya.com/blog/2022/08/most-frequently-asked-apache-hbase-interview-questions/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论