【问题标题】:Moving data between Cassandra JBOD folders manually在 Cassandra JBOD 文件夹之间手动移动数据
【发布时间】:2017-06-01 00:18:05
【问题描述】:

一般问题: 在位于不同 Cassandra JBOD 文件夹的表文件夹之间移动 db 文件是否安全(在 Cassandra 重启的单个节点内)?

具体问题: 我已经在 Cassandra 集群上配置了备份。来自存储在 Amazon S3 上的每个 JBOD 磁盘、架构和环信息的快照。现在我正在考虑从头开始恢复集群的可能性。

initial_tokens 配置属性 - 使节点知道在此节点上恢复的令牌。但是我是否需要以某种方式指定有关数据如何在 JBOD 文件夹之间传播的任何信息?或者当启动 Cassandra 从每个文件中获取布隆过滤器时,这些文件存储在哪个 JBOD 文件夹中并不重要?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    是的,当节点离线时它是安全的。只需关闭节点,移动文件并重新启动它。

    您可以从备份中获取 sstables 并将它们放在另一个集群上,您需要担心的是让令牌分配相同。否则,您放在节点上的 sstables 可能不是该节点预期保存的数据(意味着读取不会转到它)。此处描述了一种解决方法:http://datascale.io/cloning-cassandra-clusters-fast-way/。您可以从源集群复制令牌

    nodetool ring | grep 0.0.0.0 | awk '{print $NF ", "}' | xargs | cut -d '=' -f 2 | sed 's/,$//' | sed 's/^/initial_token: /' > /tmp/tokens.txt
    

    并将其放入目标集群中相应节点的 cassandra.yaml 中。而那里设置auto_bootstrap: false

    如果他们开始将令牌范围分配给磁盘或类似的东西,这可能会在未来发生变化。

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2012-10-31
      • 1970-01-01
      • 2016-02-22
      相关资源
      最近更新 更多