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

axkjgtzd  于 2021-06-08  发布在  Hbase
关注(0)|答案(1)|浏览(387)

由于我是hbase文件存储的新手,当区域服务器出现故障时,是否有任何选项可用于从复制的集群中读取特定区域
例如,在hbase集群中,在启用复制模式的主控模式下(数据集群具有单独的zookeeper),它有1个主服务器和5个区域服务器。如果一个区域服务器出现故障,在这种情况下,我是否可以从复制的集群中读取属于该区域服务器的数据?就像facebook提出的概念
https://code.facebook.com/posts/321111638043166/hydrabase-the-evolution-of-hbase-facebook/
或者,如果我们在主集群中遇到许多区域服务器的问题,那么我们需要更改从复制服务器提供的读写服务(主群集变为复制群集,反之亦然)
为此,除了通过javaapi的zookeeper仲裁连接之外,我们还需要什么配置来完成这项工作?

nr9pn0ug

nr9pn0ug1#

在hbase[启用hdfs存储和复制]中,如果某个区域服务器发生故障,则此故障区域服务器所服务的区域将被重新分配给其他区域服务器[因为hfiles和wal是在hdfs中复制的,所以您不会丢失数据]。由于hbase中故障转移的性质,这种重新分配将导致拆分和重放wal的内容,从而延长恢复时间。
但是在hydrabase中,每个区域都由区域服务器的仲裁服务,来自客户机的所有读写操作都由仲裁中的前导服务器服务。每个托管区域服务器同步地向修改区域对应的wal写入数据。如果领导者下台,其中一个追随者将被选为领导者,并将继续为读写请求提供服务。
hbase和hydrabase都能确保区域服务器发生故障时的数据可用性。hydrabase可确保减少由于区域服务器故障而导致的停机时间。

相关问题