失败后重新启动 Cassandra Decommission

问题描述

我有一个 Cassandra 集群,正在更换几个节点。我已经向集群添加了三个新节点,然后我开始了退役过程。流式传输一些数据后退役失败,我在日志中看到以下错误

java.net.socketTimeoutException: null
        at sun.nio.ch.socketAdaptor$SocketInputStream.read(SocketAdaptor.java:211) ~[na:1.8.0_181]
        at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) ~[na:1.8.0_181]
        at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385) ~[na:1.8.0_181]
        at org.apache.cassandra.streaming.messages.StreamMessage.deserialize(StreamMessage.java:54) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.ConnectionHandler$IncomingMessageHandler.run(ConnectionHandler.java:268) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]

[Stream #24830500-6b64-11eb-947a-59493eec1952] Streaming error occurred
java.lang.AssertionError: Memory was freed
        at org.apache.cassandra.io.util.SafeMemory.checkBounds(SafeMemory.java:103) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.io.util.Memory.getLong(Memory.java:260) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.io.compress.CompressionMetadata.getTotalSizeforSections(CompressionMetadata.java:259) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.messages.FileMessageHeader.size(FileMessageHeader.java:133) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.StreamSession.fileSent(StreamSession.java:561) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.messages.OutgoingFileMessage$1.serialize(OutgoingFileMessage.java:49) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.messages.OutgoingFileMessage$1.serialize(OutgoingFileMessage.java:40) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:48) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:370) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:350) ~[apache-cassandra-3.0.5.jar:3.0.5]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]

节点现在停留在 UL 状态。我在 Stackoverflow 和 Datastax 上找到了多个建议使用 nodetool removenode 的答案,但我想从此节点流式传输数据以确保没有由于集群中的不一致而导致数据丢失,因为 RF 为 2。我不是能够找到重新启动此过程的方法。有没有办法重新启动退役过程?任何帮助表示赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)