如果具有 hbase 表区域的节点出现故障会发生啥

Posted

技术标签:

【中文标题】如果具有 hbase 表区域的节点出现故障会发生啥【英文标题】:What will happen if a node having a region of an hbase table goes down如果具有 hbase 表区域的节点出现故障会发生什么 【发布时间】:2014-03-07 06:43:15 【问题描述】:

我们在 HBase 中有一个表,预拆分计数为 16(创建的区域数为 16),并且我们已经将一些数据加载到表中,我们可以看到数据根据我们的拆分移动到不同的区域已定义。

在这里,我们对区域概念几乎没有疑问。

    如果其中一个节点出现故障(如果该节点具有 HBase 表的区域之一),会发生什么?并且是否可以获取/扫描特定于 HBase 表的该区域的数据

    是否会将整个区域复制到其他节点或如何工作?

谁能帮帮我。

【问题讨论】:

【参考方案1】:

一般来说,HBase 将数据存储在 Hadoop 上,Hadoop 会复制集群中的数据(默认为 3 个副本,但您可以更改)。当/如果 RegionServer 崩溃时,Master 会将由该服务器处理的区域分配给其他 regionServer。

但是,该过程涉及更多,因为 HBase 不会将数据直接写入文件,而是首先将其缓冲在内存中。但是,它确实会将任何新数据写入 WAL(预写日志),因此当发生崩溃时,它还会在恢复完成之前重放 WAL。

另请注意,这里有更多详细信息,例如围绕数据局部性,HBase 如何确保数据被复制等。您可以阅读其中的一些内容here

【讨论】:

好的,我会浏览您提供的链接,如果我对这个概念有任何疑问,我会回来。 如果崩溃区域服务器宕机了,WAL 也会消失吗? WAL 是否也在 HDFS 中复制? 我使用 HBase 已经有一段时间了,但我确信 WAL 仍然写入 HDFS 并根据配置的复制因子进行复制

以上是关于如果具有 hbase 表区域的节点出现故障会发生啥的主要内容,如果未能解决你的问题,请参考以下文章

了解 hbase 如何使用 hdfs

当 Spark master 失败时会发生啥?

记一次HBase RegionServer 经常挂掉 故障排查过程

按表重新平衡 hbase 区域

RabbitMQ 集群节点故障

Hbase中对数据 增删改查 工作流程