R01 - 011、HBase 内部是什么机制?

初学耗时:0.5h

注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

一、HBase 内部是什么机制?



记忆词:

  ...

R01 - 999、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 可能无法恢复数据,没有刷写到硬盘的所有写入数据都会丢失。


虎踞龙盘今胜昔,天翻地覆慨而慷。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -


※ 世间诱惑何其多,坚定始终不动摇。

以下列关于公司制企业说法正确的是


A、股东可以直接支配自己入股的那部分资产。
B、企业出现资不抵债时,股东要用自己的全部个人财产来抵偿。
C、所有权与经营权可以相分离。
D、大部分的零售商业、手工业、家庭工业采取这种经营方式。

C
R01 - 011、HBase 内部是什么机制?



虎踞龙盘今胜昔,天翻地覆慨而慷。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -


注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!



虎踞龙盘今胜昔,天翻地覆慨而慷。


上一篇:python 重新使用一个Webdriver的解决方法


下一篇:联邦学习FATE社区2021年度生态峰会倒计时1天,请查收这份参会攻略