hbase动态更改行键设计_「技术干货」经典HBase面试真题分享

1d07b1b2f7540de65ac2e5db95b8f624.png

Apache HBase是Hadoop生态系统中的开源、非关系、分布式数据库。HBase面试问题一直以来都是Hadoop面试的重要部分。今天我们将介绍一些基本的和高级的HBase问题。

由于Hadoop开发需要处理许多与数据库相关的活动,以进行数据库采购和编写,因此了解至少一种数据库技能对于Hadoop开发人员至关重要。

此外,企业更喜欢选择非关系数据库,考虑到其许多功能,HBase是Hadoop的理想选择。因此,在任何Hadoop工作面试中都要面对HBase面试问题,这是每个Hadoop专业人士都必须面对的。

1.你对Apache HBase了解多少?

答:Apache HBase是基于开源Hadoop的非关系,分布式数据库管理系统。它是承载大型表的理想选择,大型表由一组集群商品硬件之上的大量行和列组成。此外,它是版本化的实时数据库,可为用户提供读/写访问权限。HBase具有以下功能:

  • 模块化和线性可伸缩性。
  • 保持严格一致的读/写。
  • 表的可配置和自动分片。
  • 自动支持区域服务器之间的故障转移。
  • 基类支持使用Apache HBase表备份Hadoop MapReduce作业。
  • 用户可访问的Java API,用于客户端访问。
  • 用于实时查询的布隆过滤器和块缓存。
  • 用于查询谓词下推的服务器端过滤器。
  • 具有REST-ful Web服务的Thrift网关,支持XML,二进制数据编码和Protobuf。
  • 基于JRuby的可扩展外壳。
  • 它支持使用Hadoop指标子系统将指标导出到Ganglia或文件或通过JMX。

2.Apache HBase中使用了哪些不同的操作命令?

答:放置,获取,删除,最后,扫描和递增。

3.选择HBase作为Hadoop的DBMS的最佳理由是什么?

答:Apache HBase的某些属性使其成为Hadoop的DBMS的最佳选择。这里是其中的一些:

  • 可扩展性
  • 非常适合处理可容纳数十亿行和列的大型表
  • 用户可以实时在数据库上进行读写。
  • 与Hadoop兼容,因为它们都是基于Java的。
  • 对CRUD操作的广泛操作支持。

4.HBase有哪些不同的关键组件?

答:HBase的关键组件是:

  • 区域-这些是HBase表的水平划分的行。HBase的此组件包含Hfile和内存数据存储。
  • 区域服务器-此组件监视区域。
  • HBase Master或HMaster-此组件负责区域分配,还监视区域服务器。
  • Zookeeper-它充当客户端和HBase Master组件之间的分布式协调服务,还维护集群中的服务器状态。它监视哪些服务器可用并处于活动状态。除此之外,它还通知服务器何时无法执行。
ade43330e3b41f20549ba664b9e5d907.png

5.什么是行键?

答:RowKey是HBase中的唯一标识符,用于在逻辑上对表单元进行分组,以确保所有具有相似RowKey的单元都放在同一服务器上。但是,内部RowKey是字节数组。

6.RDBMS和HBase表之间有什么区别?

答:

  • RDBMS是基于架构的数据库,而HBase是不遵循任何架构的数据模型。
  • RDBMS支持内置表分区,但是HBase支持自动分区。
  • RDBMS以规范化格式存储数据,而HBase存储非规范化数据。

7.WAL是什么意思?

答:WAL代表预写日志。该HBase日志记录表数据中的所有更改,而不管更改方式如何。该日志文件本身是标准序列文件。该文件的主要实用程序是即使在服务器崩溃后也向用户提供数据访问。

8.HBase中有哪些不同的目录表?

答:HBase中有两个主要目录表,分别是ROOT和META。ROOT表的目的是跟踪META表,并且META表用于在HBase系统中存储区域。

9.HBase中的墓碑标记是什么?HBase中有多少个墓碑标记?

答:当用户删除HBase表中的单元格时,尽管该单元格在表中不可见,但仍以标记形式(通常称为逻辑删除标记)保留在服务器中。在压缩期间,逻辑删除标记将从服务器中删除。

有三个墓碑标记:

  • 版本删除
  • 家庭删除
  • 列删除

10.提到将HBase视为数据库时的几种情况?

答:这是一些方案:

  • 当我们需要转移整个数据库时
  • 处理大数据操作
  • 当我们需要频繁的内部联接时
  • 需要频繁进行事务维护时。
  • 当我们需要处理可变模式时。
  • 当应用程序需要基于密钥的数据检索时
  • 当数据为集合形式时

11.HBase和Hive有什么区别?

答:Apache HBase和Apache Hive具有非常不同的基于Hadoop的基础架构。

  1. Apache Hive是建立在Hadoop之上的数据仓库,而Apache HBase是基于NoSQL密钥/值并在Hadoop HDFS之上运行的数据存储。
  2. Apache Hive允许通过HQL查询存储在HDFS上的数据以进行分析,然后转换为MapReduce作业。相反,Apache HBase操作在其数据库上实时运行,而不是作为MapReduce作业运行。
  3. Apache Hive通过其分区功能可以处理有限的数据,而HBase通过其键/值对功能支持处理大量数据。
  4. Apache Hive没有版本控制功能,而Apache HBase提供了版本控制数据。

12.在HBase中重要的过滤器有哪些?

答:列过滤器,页面过滤器,行过滤器,族过滤器,包含停止过滤器。

13.什么是色谱柱族?HBase的目的是什么?

答:列族是HBase表中的键,代表数据的逻辑偏差。它会影响HDFS中的数据存储格式。因此,每个HBase表必须至少具有一个列族。

14.什么是MemStore?

答:MemStore是HBase中使用的写缓冲区,用于在永久写入之前在内存中累积数据。当MemStore填满数据时,其内容将刷新到磁盘并形成一个新的Hfile。每个列族存在一个MemStore。

15.什么是HFile?

答:HFile是HBase底层存储格式。每个HFile都属于一个列族,而一个列族可能具有多个HFile。但是,单个HFile永远不会包含多个列族的数据。

16.什么是BlockCache?

答:HBase BlockCache是HBase中使用的另一种数据存储。它用于将最常用的数据保留在JVM堆中。这种数据存储的主要目的是提供对HFiles中数据的访问,以避免读取磁盘。HBase中的每个列族都有自己的BlockCache。同样,BlockCache中的每个块代表数据的单位,而Hfile是一系列块,并在这些块上具有索引。

fd1bbb97463ffaab6a0178f0daebfd8b.png

HBase 高级面试问答

17.数据如何写入HBase?

答:遵循以下几个步骤将数据写入HBase。首先,当用户更新HBase表中的数据时,它将对提交日志进行记录,该记录在HBase中称为预写日志(WAL)。接下来,将数据存储在内存中的MemStore中。如果内存中的数据超过最大值,则将其作为HFile刷新到磁盘。刷新数据后,用户可以丢弃提交日志。

18.HBase中有哪些不同的压缩类型?

答:压缩有两种类型:

  • 大型压缩–这里出现了所有基于列的HFile,以创建单个HFile。一旦HFiles被删除,它们将被丢弃
  • 次要压缩–在这种情况下,通过合并许多相邻的小HFile创建单个Hfile。小文件是随机选择的。

19.可以在HBase中的行中执行迭代吗?请说明。

答:是的,只要任务不是按相反的顺序执行,我们就可以遍历所有行。当HBase将列值存储在磁盘上时,必须正确定义长度,并且必须在其后写入值。因此,如果要以相反的顺序执行迭代,则需要再存储一次值,这是HBase的兼容性和内存问题。

20.HBase如何处理写入失败?

答:在像HBase这样的大型分布式系统中,故障很常见。但是,我们可以使用HBase预写日志(WAL)防止数据失败。属于HBase群集的每个服务器都维护一个WAL,以记录HBase数据中发生的更改。除非针对每个写操作在WAL中写入一个新条目,否则它将不会被视为成功。此外,Hadoop分布式文件系统(HDFS)支持HBase。因此,如果HBase发生故障,则将使用WAL从MemStore中清除未刷新的数据。

21.从HBase读取数据时,将在返回值之前从哪三个地方对数据进行协调?

答:

  • 1. MemStore:它是检查系统中是否有任何未决修改的第一个地方。
  • 2. BlockCache:这是用来验证是否最近访问过该块。
  • 3. HFiles:磁盘上的相关HFiles。

22.你在什么时候不想使用HBase?

答:

  • 当数据访问模式在不可变数据上是顺序的时。
  • 当数据不大时。
  • 何时可以使用Hive之类的替代方法。
  • 当我们真正需要关系查询引擎或规范化架构时。

结论

希望上述HBase面试问题能帮助你准备Hadoop面试。但是,首先,HBase面试问题首先,你必须了解Hadoop。以上就是今天的内容了,如果对你有所帮助,希望你能够关注、点赞、转发一键三连支持一下。

需要完整学习线路和配套课堂笔记,请回复111。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值