合 大数据之HBase面试题
介绍
HBase 是一个面向列的非关系型数据库管理系统,在 Hadoop 分布式文件系统 (HDFS) 上运行。HBase 提供了一种存储稀疏数据集的容错方式,这在几个大数据用例中很普遍。它非常适合实时数据处理或对大数据量的随机读/写访问。与 SQL 等关系数据库相比,HBase 不提供该数据库提供的结构化查询语言。
来源:hbase.apache.org
HBase 是一种类似于 Google 的“大表”的数据模型,可以轻松快速地获取大量结构化数据。它包含一组以键值格式存储数据的表。程序员可以在任何他们想要的编程语言中使用 Hbase 的 API。可以使用 Hadoop 生态系统的这个元素实时读取和写入 Hadoop 文件系统中的数据。
无论是直接还是通过 HBase,数据都可以存储在 HDFS 中。数据消费者使用 HBase 随机读取/访问 HDFS 数据。对 Hadoop 文件系统的读写访问由 HBase 提供。
特征
- 可以随时将任意数量的列添加到水平可伸缩性。
- 多维排序映射以分布式方式通过行键、列键和时间戳进行索引。
- 在系统发生故障的情况下,管理员可以使用自动故障转移将数据处理自动转换到备用系统。
- 建立在 Hadoop 分布式文件系统之上,每个命令和 Java 代码在内部实现 Map/Reduce 以完成操作。
- 通常称为键值存储、面向列族的数据库或用于存储地图的版本化地图。
- 它基本上是一个用于存储和检索随机访问数据的系统。
- 它不强加数据元素之间的关系。
- 它旨在在基于商品硬件的计算机集群上运行。
面试问题
1. Apache HBase 的目的是什么?
当需要对大数据进行随机、实时的读/写访问时,使用 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 在压缩期间被删除。
墓碑标记分为三种类型: