卡桑德拉退役数据丢失

时间:2018-10-15 09:32:06

标签: cassandra nosql cluster-computing data-loss

我们正在运行带有节点服务器的Cassandra集群。最初,集群只有一个节点,并且我们决定,由于该节点空间不足,我们可以向集群添加另一个节点。

群集上的信息:

在单个数据中心上使用SimpleStrategy类的

具有复制因子 1 的键空间 Node 1 - 256 tokens, almost no space available (1TB occupied by Cassandra data) Node 2 - connected with 256 tokens, had 13TB available

首先,我们将节点2添加到集群中,然后意识到要将数据流传输到节点2,我们必须停用节点1。 因此,我们决定停用,清空并重新配置节点1(我们希望节点1仅容纳32个令牌),然后将节点1重新添加到群集数据中心。

启动退役过程时,它创建了29个文件流,总计近600GB。该流已成功复制(我们检查了日志并使用了 nodetool netstats ),我们期望第二个流将随之而来,因为节点1上有1TB。但是没有任何其他事情发生,该节点报告为已停用,并且节点2报告的数据流已完成。

来自节点2的日志与副本流有关: INFO [STREAM-INIT-/10.131.155.200:48267] 2018-10-08 16:05:55,636 StreamResultFuture.java:116 - [Stream #a248d100-cb0b-11e8-a427-37a119a8af0a ID#0] Creating new streaming plan for Unbootstrap INFO [STREAM-INIT-/10.131.155.200:48267] 2018-10-08 16:05:55,648 StreamResultFuture.java:123 - [Stream #a248d100-cb0b-11e8-a427-37a119a8af0a, ID#0] Received streaming plan for Unbootstrap INFO [STREAM-INIT-/10.131.155.200:57298] 2018-10-08 16:05:55,648 StreamResultFuture.java:123 - [Stream #a248d100-cb0b-11e8-a427-37a119a8af0a, ID#0] Received streaming plan for Unbootstrap INFO [STREAM-IN-/10.131.155.200:57298] 2018-10-08 16:05:55,663 StreamResultFuture.java:173 - [Stream #a248d100-cb0b-11e8-a427-37a119a8af0a ID#0] Prepare completed. Receiving 29 files(584.444GiB), sending 0 files(0.000KiB) INFO [StreamReceiveTask:2] 2018-10-09 16:55:33,646 StreamResultFuture.java:187 - [Stream #a248d100-cb0b-11e8-a427-37a119a8af0a] Session with /10.131.155.200 is complete INFO [StreamReceiveTask:2] 2018-10-09 16:55:33,709 StreamResultFuture.java:219 - [Stream #a248d100-cb0b-11e8-a427-37a119a8af0a] All sessions completed

清除cassandra数据文件夹(我们应该备份它)后,我们在节点1上再次启动cassandra,它成功加入了集群。

该集群可通过以下方式运行: Node 1 - 32 tokens Node 2 - 256 tokens

但是,我们似乎丢失了很多数据。我们按照Cassandra文档中的说明进行操作。

我们尝试在两个节点上进行 nodetool修复,但无济于事(两个都报告没有要恢复的数据)。

我们在这里想念什么?有办法恢复丢失的数据吗?

谢谢大家!

0 个答案:

没有答案