- exception/
- Exception 而Cassandra压缩线程CompactionExecutor中存在致命异常
Exception 而Cassandra压缩线程CompactionExecutor中存在致命异常
Exception 而Cassandra压缩线程CompactionExecutor中存在致命异常,exception,cassandra,cluster-computing,eof,cassandra-0.7,Exception,Cassandra,Cluster Computing,Eof,Cassandra 0.7,我在运行cassandra-0.8.2的EC2上有12个节点的cassandra集群。
在压缩过程中,我遇到了以下异常,导致种子节点宕机
下面是异常堆栈跟踪
错误[CompactionExecutor:31]2011-12-16 08:06:02308 AbstractCassandraDaemon.java(第139行)线程[CompactionExecutor:31,1,main]中出现致命异常
java.io.IOError:java.io.eofeexception:7789868中43
我在运行cassandra-0.8.2的EC2上有12个节点的cassandra集群。
在压缩过程中,我遇到了以下异常,导致种子节点宕机
下面是异常堆栈跟踪
错误[CompactionExecutor:31]2011-12-16 08:06:02308 AbstractCassandraDaemon.java(第139行)线程[CompactionExecutor:31,1,main]中出现致命异常
java.io.IOError:java.io.eofeexception:7789868中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.ReduceingIterator.computeNext(ReduceingIterator.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)
在org.apache.cassandra.db.compression.CompactionManager.docompationwithoutsizeestimation上(CompactionManager.java:569)
位于org.apache.cassandra.db.compression.CompactionManager.doCompaction(CompactionManager.java:506)
位于org.apache.cassandra.db.compression.CompactionManager$1.call(CompactionManager.java:141)
位于org.apache.cassandra.db.compression.CompactionManager$1.call(CompactionManager.java:107)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
位于java.util.concurrent.FutureTask.run(FutureTask.java:138)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
原因:java.io.EOFException:EOF在778986868中的430959023字节之后
在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多
- 它说它是由以下原因引起的:java.io.EOFException:
- 这是因为损坏的sstables吗?
如果是,那么如何移除或修复这些SST表
看起来这确实是由损坏的SSTABLE(这可能表示硬件问题)引起的。我的建议:
升级至Cassandra的最新稳定0.8.x版本。这将是0.8.2的替代品
在有问题的机器上运行“nodetool scrub”
回顾——我建议每个数据中心有两个种子节点,但请记住,只有在重新启动节点时才会咨询种子节点,所以在正常操作期间关闭一个种子节点并不是什么大问题