HBase当特定区域服务器失败时,请从复制的群集中读取数据



作为我是HBase文件存储的新手,当区域服务器失败时,是否有任何可用的选项可以从复制的群集中读取特定区域

例如,在HBase群集中,具有复制模式启用主主机模式(带有独立Zookeeper的数据群集),它具有1个主服务器和5个区域服务器。在该区域服务器失败的情况下,在这种情况下,我是否可以从复制的群集中读取数据属于该区域服务器?就像Facebook提出的概念

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

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

为此,除了通过Java API连接Zookeeper Quorum连接以外,我们需要做什么配置?

在HBase [带有HDFS Storage&启用复制]如果区域服务器失败,则该失败的区域服务器提供的区域将被重新分配到其他区域服务器(因为HFILE和WAL在HDF中复制,您将不会丢失数据]。由于HBASE中故障转移的性质,这种重新分配将导致分裂和重播WAL的内容,该内容延长了恢复时间。

但是,在Hydrabase中,每个区域均由区域服务器的法定人数提供服务,并且客户的所有阅读和写作都是由法定人数的领导者提供的。每个托管区域服务器同步写入WAL对应于修改的区域。如果领导者失败,则其中一名追随者将当选为领导者,并将继续服务读写请求。

HBase和Hydrabase都确保在区域服务器故障的情况下确保数据可用性。Hydrabase确保减少由于区域服务器故障而导致的停机时间。

最新更新