java.io.EOFException using sstabledump



我有一个脚本,可以从gcloud下载使用sstabledump所需的所有文件,然后将它们转储到json但由于某种原因,我得到了这个错误:

java.io.EOFException
at org.apache.cassandra.io.util.RebufferingInputStream.readByte(RebufferingInputStream.java:180)
at org.apache.cassandra.io.util.RebufferingInputStream.readPrimitiveSlowly(RebufferingInputStream.java:142)
at org.apache.cassandra.io.util.RebufferingInputStream.readInt(RebufferingInputStream.java:222)
at org.apache.cassandra.io.sstable.metadata.MetadataSerializer.deserialize(MetadataSerializer.java:157)
at org.apache.cassandra.io.sstable.metadata.MetadataSerializer.deserialize(MetadataSerializer.java:132)
at org.apache.cassandra.tools.Util.metadataFromSSTable(Util.java:317)
at org.apache.cassandra.tools.SSTableExport.main(SSTableExport.java:144)
java.io.EOFException
at org.apache.cassandra.io.util.RebufferingInputStream.readByte(RebufferingInputStream.java:180)
at org.apache.cassandra.io.util.RebufferingInputStream.readPrimitiveSlowly(RebufferingInputStream.java:142)
at org.apache.cassandra.io.util.RebufferingInputStream.readInt(RebufferingInputStream.java:222)
at org.apache.cassandra.io.sstable.metadata.MetadataSerializer.deserialize(MetadataSerializer.java:157)
at org.apache.cassandra.io.sstable.metadata.MetadataSerializer.deserialize(MetadataSerializer.java:132)
at org.apache.cassandra.tools.Util.metadataFromSSTable(Util.java:317)
at org.apache.cassandra.tools.SSTableExport.main(SSTableExport.java:144)

你知道为什么会发生这种事吗?

这表明一个(或多个(SSTables不完整或已损坏。

文件结尾异常(EOFException(被抛出,因为SSTable元数据指示*-Data.db文件中有更多数据,但已到达文件结尾。

如果从活动data/*子目录复制文件,则会出现这种情况,因为文件不一定(a(已完全刷新到磁盘,或者(b(尚未完全压缩。

我建议您执行nodetool snapshot,并且只从snapshots/*子目录中复制SSTables,以确保文件完全一致。干杯

最新更新