我在运行cassandra-0.8.2的EC2上有12个节点的cassandra集群。 压缩时,我得到了以下异常,导致种子节点崩溃。
以下是异常堆栈跟踪。
ERROR [CompactionExecutor:31] 2011-12-16 08:06:02,308 AbstractCassandraDaemon.java(第139行)线程中的致命异常线程[CompactionExecutor:31,1,main] java.io.IOError:java.io.EOFException:在778986868之后的430959023字节之后的EOF 在org.apache.cassandra.io.sstable.SSTableIdentityIterator。(SSTableIdentityIterator.java:149) 在org.apache.cassandra.io.sstable.SSTableIdentityIterator。(SSTableIdentityIterator.java:90) 在org.apache.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.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:39) 在org.apache.commons.collections.iterators.CollatingIterator.set(CollatingIterator.java:284) 在org.apache.commons.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.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183) 在org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94) at 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) at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303) 在java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908) 在java.lang.Thread.run(Thread.java:662) 引起:java.io.EOFException:在778986868中的430959023字节之后的EOF 在org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:229) 在org.apache.cassandra.io.sstable.IndexHelper.skipIndex(IndexHelper.java:63) 在org.apache.cassandra.io.sstable.SSTableIdentityIterator。(SSTableIdentityIterator.java:141) ......还有23个
答案 0 :(得分:2)
看起来这确实是由腐败的sstables引起的(这可能表明存在硬件问题)。我的建议: