Hadoop 分布式系统CAP

Hadoop 分布式系统CAP,hadoop,nosql,Hadoop,Nosql,当我们谈论nosql分布式数据库系统时,我们知道它们都属于CAP theoram的三分之二。对于一个网络故障和节点故障不可避免的分布式集群,分区容错是必要的,因此让我们从可用性和一致性中选择一个。所以基本上是CP或AP 我的问题是 hadoop属于哪一类 假设我有一个包含6个节点ABC和DEF的集群,在网络故障期间,假设节点a、B、C和节点D、E、F被划分为两个独立的集群 现在,在一致性和分区容忍系统(CP)模型中,由于节点a中的更新不会复制到节点D,因此系统的一致性将不允许用户更新或读取数据,

当我们谈论nosql分布式数据库系统时,我们知道它们都属于CAP theoram的三分之二。对于一个网络故障和节点故障不可避免的分布式集群,分区容错是必要的,因此让我们从可用性和一致性中选择一个。所以基本上是CP或AP

我的问题是

  • hadoop属于哪一类

  • 假设我有一个包含6个节点ABC和DEF的集群,在网络故障期间,假设节点a、B、C和节点D、E、F被划分为两个独立的集群

    现在,在一致性和分区容忍系统(CP)模型中,由于节点a中的更新不会复制到节点D,因此系统的一致性将不允许用户更新或读取数据,直到网络再次运行,从而导致数据库关闭

    然而,当在节点A进行更新时,可用的分区容错系统将允许节点D的用户查看旧数据,但不保证节点D的用户获得最新数据。但是在网络再次运行一段时间后,它将节点A的最新数据复制到节点D中,从而允许节点D的用户查看最新数据

    从以上两个场景中,我们可以得出结论,在AP模型中,没有数据库运行的空间,因此即使在故障期间也允许用户写入和读取,并在网络再次启动时向用户承诺最新数据,那么为什么人们会选择一致性和分区容忍模型(CP)。在我看来,网络故障期间(AP)比(CP)具有优势,允许用户在(CP)下的数据库关闭时读取和写入数据

  • 除了卡桑德拉的最终一致性概念外,是否有任何系统可以提供CAP

  • 用户何时选择可用性而不是一致性,反之亦然。是否有任何数据库允许用户在CP和AP之间相应地切换其选择


  • 提前感谢:)

    HDFS有一个独特的中心决策点,即。因此,它只能落在CP端,因为取下namenode会取下整个HDFS系统(无可用性)。Hadoop不会试图隐藏以下内容:

    NameNode是HDFS群集的单点故障。HDFS目前不是一个高可用性系统。当NameNode关闭时,文件系统将脱机。有一个可选的SecondaryNameNode,可以托管在单独的计算机上。它仅通过将编辑文件合并到fsimage文件和中来创建名称空间的检查点

    由于将数据放置在何处以及从何处读取数据的决策始终由namenode处理,它在内存中保持一致的视图,因此HDFS始终是一致的(C)。它还具有分区容错性,因为它可以根据复制因素和数据拓扑策略处理丢失的数据节点

    是否有任何系统可以一起提供CAP

    是的,市场营销和其他非技术出版物中经常提到这种系统

    用户何时选择可用性而不是一致性,反之亦然

    这是一个业务用例决策。当可用性更重要时,他们选择AP。当一致性更重要时,他们选择CP。一般来说,当资金易手时,一致性优先。几乎所有其他案例都支持可用性

    是否有任何数据库允许用户在CP和AP之间相应地切换其选择


    允许您修改写入和读取数量的系统可以根据需要调整为CP或AP。

    感谢您的回复。在HDFS中,名称节点每隔3秒从数据节点接收心跳。在节点故障期间,心跳停止从受影响节点到达名称节点,并且名称节点将受影响节点声明为死亡。然后,访问死节点的用户被重定向到其任何副本节点。这个概念是否使hadoop在节点级别可用且不一致,因为即使在节点死后,用户也能够从副本节点读取数据。不,因为HDFS块是不可变的。数据节点仅处理块,而不处理逻辑实体(文件)。由于不变性,数据节点提供的块不能不一致,读取该块的指令只能由namenode给出。感谢您的回复,非常感谢。请详细说明以下内容:“有一个可选的SecondaryNameNode可以托管在单独的计算机上。它仅通过将编辑文件合并到fsimage文件中来创建命名空间的检查点,并且不提供任何真正的冗余。”如果你能提供一些链接,让我了解名称空间的检查点,我也会很高兴。你能单独问一个问题吗?谢谢。值得注意的是,关于CAP定理的“三取二”规则可能有点误导。我推荐这篇文章: