我们将我们的集群迁移到Cassandra 1.2(从1.1.7开始),我们尝试在迁移后运行修复(我们按照建议定期运行它们)。
由于SSTable版本不同,修复失败,因此我们使用nodetool upgradesstables
和nodetool scrub
并重试。
但是修复因此异常而失败:
java.io.IOException: Broken pipe
at com.google.common.base.Throwables.propagate(Throwables.java:160)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileChannelImpl.transferTo0(Native Method)
at sun.nio.ch.FileChannelImpl.transferToDirectly(Unknown Source)
at sun.nio.ch.FileChannelImpl.transferTo(Unknown Source)
at org.apache.cassandra.streaming.compress.CompressedFileStreamTask.stream(CompressedFileStreamTask.java:90)
at org.apache.cassandra.streaming.FileStreamTask.runMayThrow(FileStreamTask.java:91)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
我们还注意到,在临终前,nodetool netstats
显示了奇怪的统计数据(SSTable转移为756845%......)。
修改
传输compressend SSTable似乎有问题,我将尝试在此ColumnFamily上禁用压缩并重试。
RE-修改
禁用压缩修复了问题,因此我们尝试重新启用它并获得了
java.lang.RuntimeException:
Last written key DecoratedKey(97115[...]3136) >= current key DecoratedKey(8...
有什么想法吗?