跨多个数据中心的多节点设置中的Cassandra复制键空间

时间:2018-08-29 02:19:32

标签: cassandra cassandra-3.0

在同一集群上,我有一个要复制的密钥空间示例。

我有一个包含两个数据中心的6节点设置,每个dc中有3个节点,每个dc中的复制因子为3。

我正在使用3.0.17版

我看到回答here的类似问题提到了以下步骤。

  1. 创建密钥空间的快照
  2. 创建新的KeySpace($ {NEW_KEYSPACE})和表
  3. 将SNAPSHOT / *。db文件复制到$ CASSANDRA_HOME / data / data / $ {NEW_KEYSPACE}中的相应表文件夹中
  4. 刷新KeySpace和表
  5. 修复KeySpace

我想知道快照文件的副本是否需要在一个节点或所有节点上发生?

此外,如果设置的节点数多于复制因子,是否会改变,以致某些节点没有100%的数据?

1 个答案:

答案 0 :(得分:1)

  

我想知道快照文件的副本是否需要在一个节点或所有节点上发生?

     

此外,如果设置的节点数多于复制因子,是否会改变,以致某些节点没有100%的数据?

快照仅包含其所在节点的数据。节点数超过定义的RF的问题正是您需要在每个节点上拍摄快照以确保获取所有数据的问题。

但是,由于所有节点都负责100%的数据,因此您只需要在一个节点上拍摄快照即可。

编辑

  

我还想知道,作为创建新密钥空间的一部分,我需要在所有节点上复制快照文件,还是可以仅在一个节点上复制快照文件,然后修复过程就可以进行了?到其他节点?

由于您的RF ==每个DC的节点数,因此您只需要将文件复制到一个节点上,然后将它们加载,其余的就应该由维修来解决。