缩放cassandra流错误(空指针异常)

时间:2016-06-22 05:55:00

标签: java nullpointerexception cassandra

我们有一个具有单个节点的集群,它有大约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中是否有任何错误或我可能做错了什么。

2 个答案:

答案 0 :(得分:0)

关于这个ticket

你检查过这个,也许是可能的解决方案吗?

  1. 获取您的架构:DESC SCHEMA;
  2. 在新节点上使用cqlsh。
  3. 导入架构。
  4. 将新节点添加到群集。
  5. 或者您可以更新到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)

希望它有所帮助。