Java 缩放cassandra流错误(空指针异常)
我们有一个带有单个节点的集群,它有大约40GB的数据。我们正在尝试扩展并向集群添加第二个节点,但无法做到这一点。 种子节点开始流式传输数据,但一段时间后抛出错误。 错误是:Java 缩放cassandra流错误(空指针异常),java,nullpointerexception,cassandra,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.N
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引导恢复时,它会再次开始流式传输数据,但在发生一些错误后会抛出相同的错误
cassandra 3.3中是否存在任何缺陷,或者我可能做错了什么。关于这一点:
你检查过这个了吗,也许是可能的解决方案
nodetool upgradesstables
已解决此问题。关于此问题:
你检查过这个了吗,也许是可能的解决方案
nodetool upgradesstables
已解决此问题。遇到类似问题
根据我的日志:
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的数据和CommitLog所在分区上的剩余空间。可能您使用的是默认值(/var/lib),并且根分区可能已满(在OS安装时通常默认为50GB,包括/var)
希望有帮助。也遇到了类似的问题
根据我的日志:
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的数据和CommitLog所在分区上的剩余空间。可能您使用的是默认值(/var/lib),并且根分区可能已满(在OS安装时通常默认为50GB,包括/var)
希望有帮助。你提到的罚单是针对不同的例外情况,而不是我得到的。是的,我知道,但你检查过了吗?两者都是完全不同的例外情况。在抛出异常之前,一些数据在节点之间传输。啊,好的。表中是否有空字段?可能传输将停止,因为行中有一个空字段。您是否检查过,可能是在新的clean development节点上,用空字符串覆盖它?我知道这不是很好,但当它有帮助时,它是一个可接受的解决方法。我不确定这一点,但应该有一种机制,它忽略空行/列数据。您提到的记录单是针对不同的异常,而不是我得到的。是的,我知道,但您检查过它吗?两者都是完全不同的异常。在抛出异常之前,一些数据在节点之间传输。啊,好的。表中是否有空字段?可能传输将停止,因为行中有一个空字段。您是否检查过,可能是在新的clean development节点上,用空字符串覆盖它?我知道这不是很好,但当它有帮助时,它是一个可接受的解决方法。我不确定这一点,但应该有一种机制,它忽略空的行/列数据。我遇到了同样的问题,我们可以通过引用这些链接来解决这些问题。[我也面临同样的问题,我们可以通过参考这些链接来解决这些问题[