由于我是hbase文件存储的新手,当区域服务器出现故障时,是否有任何选项可用于从复制群集中读取特定区域
例如,在hbase群集中,启用了复制模式的主 - 主模式(具有单独zookeeper的数据群集),它具有1个主服务器和5个区域服务器。在那个区域服务器失败,在这种情况下,我能够从复制群集中读取属于该区域服务器的数据吗?喜欢facebook提出的概念
https://code.facebook.com/posts/321111638043166/hydrabase-the-evolution-of-hbase-facebook/
或者如果我们在主群集中遇到许多区域服务器的问题,那么我们需要更改从复制服务器提供的读取和写入。 (主群集成为复制群集,反之亦然)
为此,除了通过Java API进行的zookeeper仲裁连接之外,我们需要做什么配置呢?
答案 0 :(得分:1)
在Hbase中[使用HDFS存储&如果区域服务器出现故障,则此故障区域服务器所服务的区域将被重新分配给其他区域服务器[由于HFILE和WAL在HDFS中复制,因此不会丢失数据]。由于Hbase中故障转移的性质,这种重新分配将导致拆分和重放WAL的内容,从而延长恢复时间。
然而,在Hydrabase中,每个区域由法定数量的区域服务器提供服务,来自客户端的所有读取和写入都由仲裁中的领导者提供服务。每个托管区域服务器同步写入对应于修改区域的WAL。如果领导者失败,其中一个跟随者将被选为领导者,并将继续提供读写请求。
Hbase和Hydrabase在区域服务器出现故障时确保数据可用性。 Hydrabase可确保减少因区域服务器故障而导致的停机时间。