Cassandraの圧縮中CompiledExecutorのスレッドで致命的な例外

  1. cassandra-0.8.2を実行しているEC2に12ノードのcassandraクラスタを持っています。 コンパクション中にシードノードが落ちる原因となった以下の例外がありました。

  2. 以下はスタックトレースの例外です。

エラー[CompactionExecutor:31] 2011-12-16 08:06:02,308 AbstractCassandraDaemon.java(行139)スレッドの致命的な例外Thre​​ad [CompactionExecutor:31,1、main]   java.io.IOError:java.io.EOFException:EOFが778986868のうち430959023バイト後に発生する           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.Collat​​ingIterator.set(Collat​​ingIterator.java:284)           org.apache.commons.collections.iterators.Collat​​ingIterator.least(Collat​​ingIterator.java:326)           org.apache.commons.collections.iterators.Collat​​ingIterator.next(Collat​​ingIterator.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)           FutureTask.java:303でのjava.util.concurrent.FutureTask $ Sync.innerRun           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:EOFが発生した後、430959023バイトのうち778986868           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:
  • 崩壊した厩舎のためですか? そうであれば、それらの飾り紐を取り除くか修理するのか?
1

1 答え

これは、実際にはハードウェアの問題を示している可能性があります壊れたsstablesによって引き起こされるようです。私の推奨事項:

  1. 最新のstable 0.8.xバージョンのCassandraにアップグレードします。これは0.8.2の置き換えになります。
  2. 問題のあるマシンで "nodetool scrub"を実行する
  3. http://www.datastax.com/docs/1.0/install/cluster_initを確認します。 - データセンターごとに2つのシードノードを推奨しますが、シードノードはノードの再起動時にのみ参照されるので、通常の操作ではシードノードを参照する必要はありません。
2
追加された