我们正在运行一个带有节点服务器的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修复,但都没有效果(两个节点都报告没有要恢复的数据)。
我们错过了什么?有没有办法恢复这些丢失的数据?
谢谢大家!
暂无答案!
目前还没有任何答案,快来回答吧!