【问题标题】:Cassandra 1.2 migration : Broken pipeCassandra 1.2 迁移:损坏的管道
【发布时间】:2013-02-27 16:17:58
【问题描述】:

我们将集群迁移到 Cassandra 1.2(从 1.1.7)并尝试在迁移后运行修复(我们定期运行它们,如建议的那样)。

由于SSTable版本不同导致修复失败,我们使用nodetool upgradesstablesnodetool 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 SSTables 的传输似乎有问题,我将尝试禁用此 ColumnFamily 的压缩并重试。

重新编辑

禁用压缩解决了这个问题,所以我们尝试重新启用它并得到了一个

java.lang.RuntimeException:
  Last written key DecoratedKey(97115[...]3136) >= current key DecoratedKey(8...

有什么想法吗?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    该问题是由 Cassandra 1.2 中的一个错误引起的,该错误影响了节点之间压缩列族的传输。它已在 1.2.2 => Jira entry for this bug 中修复。

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 2010-10-28
      • 2011-03-19
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 2015-01-01
      相关资源
      最近更新 更多