hbase 当特定区域服务器发生故障时,从复制的集群中读取数据

hbase when particular region server fails, read the data from the replicated cluster

由于我是 hbase 文件存储的新手,当区域服务器发生故障时,是否有任何选项可用于从复制的集群中读取特定区域

例如,在hbase集群中,启用复制模式的master-master模式(数据集群有单独的zookeeper)它有1个master和5个region server。在那个区域服务器发生故障的情况下,在这种情况下,我是否能够从复制的集群中读取属于该区域服务器的数据?点赞facebook提出的概念

https://code.facebook.com/posts/321111638043166/hydrabase-the-evolution-of-hbase-facebook/

否则,如果我们在主集群中遇到许多区域服务器的问题,那么我们需要将读取和写入更改为从复制服务器提供服务。 (主集群成为复制集群,反之亦然)

为此,除了通过 Java API 的 zookeeper 仲裁连接之外,我们还需要什么配置来完成这项工作?

在 Hbase 中 [启用 HDFS 存储和复制] 如果区域服务器发生故障,则该故障区域服务器服务的区域将重新分配给其他区域服务器 [由于 HFiles 和 WAL 在 HDFS 中复制,您将不会丢失你的数据]。由于 Hbase 中故障转移的性质,这种重新分配将导致拆分和重放 WAL 的内容,从而延长恢复时间。

但是在 Hydrabase 中,每个区域都由区域服务器的法定人数提供服务,并且来自客户端的所有读取和写入都由法定人数中的领导者提供服务。每个托管区域服务器同步写入修改区域对应的 WAL。如果领导者宕机,其中一个追随者将被选为领导者,并将继续为读写请求提供服务。

Hbase和Hydrabase都保证了region server故障时数据的可用性。 Hydrabase 确保减少由于区域服务器故障而导致的停机时间。