我们有一个具有单个节点的集群,它有大约40GB的数据。我们正在尝试扩展并向群集添加第二个节点,但无法这样做。 种子节点开始流式传输数据,但一段时间后会抛出错误。 错误是:
ERROR [STREAM-OUT-/10.0.0.166] 2016-06-21 12:18:40,300 StreamSession.java:520 - [Stream #862ed0e0-37a7-11e6-b0b9-3fa2170fe9a5] Streaming error occurred
java.lang.NullPointerException: null
at org.apache.cassandra.db.SerializationHeader$Component.access$500(SerializationHeader.java:283) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.db.SerializationHeader$Serializer.serialize(SerializationHeader.java:430) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.messages.FileMessageHeader$FileMessageHeaderSerializer.serialize(FileMessageHeader.java:208) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.messages.OutgoingFileMessage.serialize(OutgoingFileMessage.java:84) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.messages.OutgoingFileMessage$1.serialize(OutgoingFileMessage.java:48) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.messages.OutgoingFileMessage$1.serialize(OutgoingFileMessage.java:40) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:48) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:363) ~[apache-cassandra-3.3.jar:3.3]
at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:335) ~[apache-cassandra-3.3.jar:3.3]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72-internal]
当我执行nodetool bootstrap恢复时,它再次启动流数据但在一些错误之后。
cassandra 3.3中是否有任何错误或我可能做错了什么。
答案 0 :(得分:0)
关于这个ticket:
你检查过这个,也许是可能的解决方案吗?
或者您可以更新到Cassandra 3.4
//编辑 桑杰夫修好了。 SSTable并不在Cassandra版本中。
nodetool upgradesstables
解决了这个问题。
答案 1 :(得分:0)
遇到了类似的问题。
根据我的日志:
cat /var/log/cassandra/system.log
找到:
Caused by: java.io.FileNotFoundException: /home/cassandra/data/system/compactions_in_progress-55080ab05d9c388690a4acb25fe1f77b/system-compactions_in_progress-tmp-ka-72-Data.db (No space left on device)
发出:
df -h
并检查分区上cassandra的数据和提交日志所在的空间。可能你正在使用默认值(/ var / lib)并且root分区可能已满(通常在操作系统安装时默认为50 Gb且包含/ var)
希望它有所帮助。