我读到一篇文章说Hbase是CAP理论中的一致性和分割性。
但我不明白为什么Hbase不是A?我认为Hbase可以始终保持服务可用,那么为什么不是A呢?
我对Hbase的理解不是A:当一个新的行被插入到Hbase中时,因为Hbase是即时一致的,它需要等待HDFS完成3个副本,但在这个副本同步时间内看不到新的行,这就是为什么Hbase不是A。但我不确定这一点。
发布于 2018-10-16 09:15:10
一般来说,CP系统意味着当“网络分区”发生时,系统将试图确保一致性(或某些博客的“线性化”),而不是使系统“可用”。
网络分区本质上是指集群被划分为两个或更多部分,由于网络故障,它们无法相互通信。在此网络问题发生期间,如果向群集的一端(区域服务器)发出写入请求,则在问题得到解决之前,系统不会接受写入。因此,当网络分区发生时,这本质上使系统不能真正“可用”。在HBase中,网络分区可能会导致区域处于过渡状态,受影响区域将无法接受读/写。这就是为什么有些帖子可能认为HBase是CP系统的原因。对于支持可用性的系统,当系统处于分区状态时,读操作不会被阻塞。
在现实世界中,CAP中的可用性具有非常特定的含义。这与我们对可用的一般含义略有不同。在小型网络分区的情况下,如果基于仲裁的系统可以快速地从系统中移除集群的坏部分,则可以确保一致性,同时只有很短的停机时间,如几秒(或者甚至更短)。因此,它们在一般情况下仍然可以认为是可用的,因为它们很快就从故障中恢复过来。但严格地说,如果您希望在网络分区期间保持一致,您将需要等待问题得到解决,然后才能为其他读取请求提供服务(因此不可用)。
发布于 2019-12-12 16:30:43
当某些RegionServer出现故障时,HBase不可用。HMaster需要一些时间:
在此期间,与发生故障的RegionServer对应的区域不可用。另请参阅"HBase崩溃恢复“here。
https://stackoverflow.com/questions/51374856
复制相似问题