在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
众所周知,HBase是一个非关系型数据库,它的特征是分布式、列式存储、开源和版本化。无论是在大数据的面试中,还是大数据的工作中,这都是一个经常会出现的难题,然而却很少人能够说清Hbase内部机制。今天我们就花些时间聊聊Hbase内部是什么机制。

在 HBase 中无论是增加新行还是修改已有的行,其内部流程都是相同的。HBase 接到命令后存下变化信息,或者写入失败抛出异常。默认情况下,执行写入时会写到两个地方:预写式日志(write-ahead log,也称 HLog)和 MemStore。HBase 的默认方式是把写入动作记录在这两个地方,以保证数据持久化。只有当这两个地方的变化信息都写入并确认后,才认为写动作完成。
MemStore 是内存里的写入缓冲区,HBase 中数据在永久写入硬盘之前在这里累积。当MemStore 填满后,其中的数据会刷写到硬盘,生成一个HFile。HFile 是HBase 使用的底层存储格式。HFile 对应于列族,一个列族可以有多个 HFile,但一个 HFile 不能存储多个列族的数据。在集群的每个节点上,每个列族有一个MemStore。
大型分布式系统中硬件故障很常见,HBase 也不例外。设想一下,如果MemStore 还没有刷写,服务器就崩溃了,内存中没有写入硬盘的数据就会丢失。HBase 的应对办法是在写动作完成之前先写入WAL。HBase 集群中每台服务器维护一个 WAL 来记录发生的变化。WAL 是底层文件系统上的一个文件。直到WAL 新记录成功写入后,写动作才被认为成功完成。这可以保证 HBase 和支撑它的文件系统满足持久性。大多数情况下,HBase 使用 Hadoop 分布式文件系统(HDFS)来作为底层文件系统。
如果 HBase 服务器宕机,没有从 MemStore 里刷写到 HFile 的数据将可以通过回放 WAL 来恢复。你不需要手工执行。Hbase 的内部机制中有恢复流程部分来处理。每台 HBase 服务器有一个 WAL,这台服务器上的所有表(和它们的列族)共享这个 WAL。
你可能想到,写入时跳过 WAL 应该会提升写性能。但我们不建议禁用 WAL, 除非你愿意在出问题时丢失数据。如果你想测试一下,如下代码可以禁用WAL: 注意:不写入 WAL 会在 RegionServer 故障时增加丢失数据的风险。关闭 WAL, 出现故障时 HBase 可能无法恢复数据,没有刷写到硬盘的所有写入数据都会丢失。
以上就是关于Hbase内部机制的疑难解答。大家要是想深入学习大数据的更多内容,可以上博学谷视频资源平台,看看有没有想要学习的视频课程,相信一定不会让大家失望。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Kylin开发教程 从原理讲解到实践演练
众所周知,Kylin是一个可扩展的超快OLAP引擎,它能够提供Hadoop ANSI SQL借口和交互式查询,还可以和BI工具无缝整合,为百亿用户构建立方体。既然学习Kylin这么有必要,那么我们该如何学习它呢?这里为大家介绍博学谷的Kylin开发教程,本教程将会对Kylin进行系统化梳理,包括了Kylin的技术架构、运维不熟、增量构建、实时构建、性能优化等内容,带领大家从原理讲解到实战演练。
7831
2019-11-25 12:22:09
无基础人员转行做机器学习可以吗?
机器学习需要一定数学基础,没有相关的了解需要重新学习。转行机器学习不适用所有人,可不可以转行需要具体结合自身的情况。入门机器学习有一定的门槛要慎重决定。
6855
2020-10-23 14:55:11
2021年大数据发展趋势及动态
大数据已经走单纯的技术架构和技术体系,走向了社会基础设施。2020年“新基建”就将“大数据中心”定义为数字新基础设施的重要建设内容。基于隐私计算的数据流通技术成为实现数据联合计算的主要思路。隐私计算在保护数据本身不对外泄露的前提下实现了数据融合,为安全合规的数据流通带来了可能。
7214
2021-01-19 15:12:03
Apache Spark与 Apache Hadoop数据科学工具有哪些区别?
Apache Spark被设计为大规模处理的接口,而 Apache Hadoop 为大数据的分布式存储和处理提供了更广泛的软件框架。两者既可以一起使用也可以作为独立服务使用。Apache Spark 和 Apache Hadoop 都是 Apache 软件基金会提供的流行的开源数据科学工具,由社区开发和支持受欢迎程度和功能不断增长。
5071
2022-06-02 11:25:53
Hadoop 狂野大数据课件学习内容有哪些?
Hadoop 狂野大数据课件学习内容有哪些?课程学习从Hadoop基本使用、运行原理、实战案例全方位讲解;从概念讲起,课程内容精炼学习效率高没有接触过Hadoop的学员也能很好理解。
6812
2022-06-14 11:09:46
