而Cassandra压缩线程CompactionExecutor中出现致命异常
我在 EC2 上有 12 个节点的 cassandra 集群,运行 cassandra-0.8.2。 在压缩时,我遇到了以下异常,导致种子节点宕机。
下面是异常堆栈跟踪。
错误 [CompactionExecutor:31] 2011-12-16 08:06:02,308 AbstractCassandraDaemon.java(第 139 行)线程 Thread[CompactionExecutor:31,1,main] 中的致命异常 java.io.IOError: java.io.EOFException: EOF after 430959023 bytes out of 778986868 在 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) 在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) 在 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) 在 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 更多
- 它说它是 Caused by: java.io.EOFException:
- 是因为损坏的 sstables 吗? 如果是,那么如何删除或修复这些 sstables?
I am having cassandra cluster of 12 nodes on EC2 running cassandra-0.8.2.
While compaction I got the following exception which caused Seed node to get down.Below is the exception stack trace.
ERROR [CompactionExecutor:31] 2011-12-16 08:06:02,308 AbstractCassandraDaemon.java (line 139) Fatal exception in thread Thread[CompactionExecutor:31,1,main]
java.io.IOError: java.io.EOFException: EOF after 430959023 bytes out of 778986868
at org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:149)
at org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:90)
at org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:74)
at org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:179)
at org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:144)
at org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:136)
at org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:39)
at org.apache.commons.collections.iterators.CollatingIterator.set(CollatingIterator.java:284)
at org.apache.commons.collections.iterators.CollatingIterator.least(CollatingIterator.java:326)
at org.apache.commons.collections.iterators.CollatingIterator.next(CollatingIterator.java:230)
at org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:69)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
at org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
at org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
at org.apache.cassandra.db.compaction.CompactionManager.doCompactionWithoutSizeEstimation(CompactionManager.java:569)
at org.apache.cassandra.db.compaction.CompactionManager.doCompaction(CompactionManager.java:506)
at org.apache.cassandra.db.compaction.CompactionManager$1.call(CompactionManager.java:141)
at org.apache.cassandra.db.compaction.CompactionManager$1.call(CompactionManager.java:107)
at 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)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.EOFException: EOF after 430959023 bytes out of 778986868
at org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:229)
at org.apache.cassandra.io.sstable.IndexHelper.skipIndex(IndexHelper.java:63)
at org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:141)
... 23 more
- It says it is Caused by: java.io.EOFException:
- Is it because of the corrupt sstables?
if it is, then how to remove or repair those sstables?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来这确实是由损坏的 sstables 引起的(这可能表明存在硬件问题)。我的建议:
It looks like this is indeed caused by corrupt sstables (which may indicate a hardware problem). My recommendations: