我在运行 cassandra-0.8.2 的 EC2 上有 12 个节点的 cassandra 集群。在压缩时,我得到了以下异常,导致种子节点宕机。
下面是异常堆栈跟踪。
错误 [CompactionExecutor:31] 2011-12-16 08:06:02,308 AbstractCassandraDaemon.java(第 139 行)线程中的致命异常 Thread[CompactionExecutor:31,1,main] java.io.IOError: java.io.EOFException: EOF在 org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:90) 在 org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:149) 的 778986868 中的 430959023 个字节之后.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:74) 在 org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:179) 在 org.apache.cassandra.io.sstable。 SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:144) 在 org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:136) 在 org.apache.commons.collections.iterators.CollatingIterator.set(CollatingIterator.java:284) 在 org.apache.commons 的 org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:39) .collections.iterators.CollatingIterator.least(CollatingIterator.java:326) 在 org.apache.commons.collections.iterators.CollatingIterator.next(CollatingIterator.java:230) 在 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator .java:69) 在 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140) 在 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135) 在 org.apache.commons。 org.apache.commons.collections.iterators 上的 collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)。FilterIterator.hasNext(FilterIterator.java:94) 在 org.apache.cassandra.db.compaction.CompactionManager.doCompactionWithoutSizeEstimation(CompactionManager.java:569) 在 org.apache.cassandra.db.compaction.CompactionManager.doCompaction(CompactionManager.java: 506) 在 org.apache.cassandra.db.compaction.CompactionManager$1.call(CompactionManager.java:141) 在 org.apache.cassandra.db.compaction.CompactionManager$1.call(CompactionManager.java:107) 在 java.util .concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886 ) 在 java.lang.Thread 的 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)。运行(Thread.java:662)原因:java.io.EOFException:在 org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:229) 的 org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:229) 的 778986868 中的 430959023 个字节后出现 EOF。 cassandra.io.sstable.IndexHelper.skipIndex(IndexHelper.java:63) 在 org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:141) ... 23 更多
- 它说它是由以下原因引起的:java.io.EOFException:
- 是因为腐败的sstables吗?如果是,那么如何删除或修复这些 sstables?