卡桑德拉机架概念和数据库结构

时间:2014-03-10 07:40:33

标签: nosql cassandra bigdata cassandra-cli

我是Cassandra的新手,我想知道Cassandra RACKS。 我也对Cassandra结构感到困惑。 假设我在Cassandra和两个AWS2实例中拥有AROUND 70列族。

1.how many Data Center will be used.
2.how many nodes each rack will have ?
3.is it possible to divide column family in multiple Key space. 

1 个答案:

答案 0 :(得分:6)

让Cassandra了解逻辑机架和数据中心的目的是提供更高级别的容错能力。在“网络拓扑策略”下的想法(as described in this document)是,如果一个机架或数据中心变暗,应用程序仍然可以运行。基本上,卡桑德拉......

  

通过顺时针转动环将副本放在同一数据中心   直到到达另一个机架中的第一个节点。 NetworkTopologyStrategy   尝试将副本放在不同的机架上,因为节点位于同一个机架中   机架(或类似的物理分组)经常由于失败而同时失败   电源,冷却或网络问题。

通过这种方式,您还可以通过LOCAL_QUORUM查询数据,其中QUORUM((replication_factor / 2)+ 1)仅从与协调器节点位于同一数据中心的节点计算。这减少了数据中心间延迟的影响。

关于你的问题:

  1. 使用了多少个数据中心完全取决于您。如果您只有两个AWS实例,则可以将它们放在不同的逻辑数据中心,但只有在计划使用一致性级别1时才有意义。如果一个实例出现故障,您的应用程序只需要担心找到另一个副本。但即便如此,snitch只能在一个实例或另一个实例上找到数据。

  2. 同样,您可以定义每个机架所需的节点数。但正如我在#1中指出的那样,如果你只有两个实例,那么将它们分成不同的数据中心或机架就没有太大的收获。

  3. 我认为不可能在多个键空间上划分列族。但我想我知道你在做什么。将在每个实例上创建每个键空间。由于您有2个实例,因此您可以指定复制因子1或2.如果您有3个实例,则可以将复制因子设置为2,然后如果丢失了1个实例,您仍然可以访问所有实例数据。由于您只有2个实例,因此您需要能够处理一个黑暗的实例,因此您需要确保两个实例都具有每行的副本(复制因子为2)。

  4. 实际上,随着群集中节点数量的增加,逻辑数据中心/机架结构变得更加有用。只有两个,通过额外的逻辑障碍将它们分开,几乎没有什么可以获得的。有关更多信息,请仔细阅读上面链接的两个文档:

    Apache Cassandra 2.0: Data Replication

    Apache Cassandra 2.0: Snitches