手动在Cassandra Jbod文件夹之间移动数据



一般问题:在位于不同的Cassandra Jbod文件夹上的表文件夹之间移动DB文件(在单个节点内使用Cassandra Restart(?

特定问题:我在Cassandra群集上配置了备份。每个JBOD磁盘,模式和戒指信息存储在Amazon S3上的快照。现在,我正在考虑从头开始恢复群集的可能性。

initial_tokens配置属性 - 使节点意识到该节点上恢复令牌。但是,我是否需要以某种方式指定有关如何在JBOD文件夹之间传播数据的任何信息?或当启动Cassandra从每个文件获取Bloom过滤器时,存储哪个JBOD文件夹都没关系?

是的,当节点离线时,它的安全。只需关闭节点,移动文件并启动备份即可。

您可以从备份中拿走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

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

最新更新