Cassandra:未在新节点

时间:2016-11-11 14:44:25

标签: cassandra replication

我向我的cassandra集群添加了一个新节点(新节点不是种子节点)。我现在在我的集群上有3个节点:

Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               
Rack

UN  XXX.XXX.XXX.XXX  52.25 GB   256          100.0%            XXX  rack1

UN  XXX.XXX.XXX.XXX  63.65 GB   256          100.0%            XXX  rack1

UN  XXX.XXX.XXX.XXX  314.72 MB  256          100.0%            XXX  rack1

我的复制因子为3:

DESCRIBE KEYSPACE mykeyspace

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': '3'}  AND durable_writes = true;

但数据未在新群集(具有314 MB数据的节点)上复制。

我尝试使用nodetool rebuild:

  

错误[STREAM-IN- / XXX.XXX.XXX.XXX] 2016-11-11 08:28:42,765   StreamSession.java:520 - [Stream   #0e7a0580-a81b-11e6-9a1c-6d75503d5d02]发生流错误java.lang.IllegalArgumentException:未知类型0 at   org.apache.cassandra.streaming.messages.StreamMessage $ Type.get(StreamMessage.java:97)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.streaming.messages.StreamMessage.deserialize(StreamMessage.java:58)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.streaming.ConnectionHandler $ IncomingMessageHandler.run(ConnectionHandler.java:261)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   java.lang.Thread.run(Thread.java:745)[na:1.8.0_74] ERROR [Thread-16]   2016-11-11 08:28:42,765 CassandraDaemon.java:195-线程中的异常   Thread [Thread-16,5,RMI Runtime] java.lang.RuntimeException:   java.lang.InterruptedException at   com.google.common.base.Throwables.propagate(Throwables.java:160)   〜[guava-18.0.jar:na] at   org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:32)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   java.lang.Thread.run(Thread.java:745)〜[na:1.8.0_74]引起:   java.lang.InterruptedException:null at   java.util.concurrent.locks.AbstractQueuedSynchronizer中的$ ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)   〜[na:1.8.0_74] at   java.util.concurrent.locks.AbstractQueuedSynchronizer中的$ ConditionObject.await(AbstractQueuedSynchronizer.java:2048)   〜[na:1.8.0_74] at   java.util.concurrent.ArrayBlockingQueue.put(ArrayBlockingQueue.java:353)   〜[na:1.8.0_74] at   org.apache.cassandra.streaming.compress.CompressedInputStream $ Reader.runMayThrow(CompressedInputStream.java:184)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)   〜[apache-cassandra-3.1.1.jar:3.1.1] ... 1个常用帧省略了INFO   [STREAM-IN- / XXX.XXX.XXX.XXX] 2016-11-11 08:28:42,805   StreamResultFuture.java:182 - [Stream   #0e7a0580-a81b-11e6-9a1c-6d75503d5d02]与/XXX.XXX.XXX.XXX的会话已完成WARN [STREAM-IN- / XXX.XXX.XXX.XXX] 2016-11-11 08:28:42,807   StreamResultFuture.java:209 - [Stream   #0e7a0580-a81b-11e6-9a1c-6d75503d5d02]流失败错误[RMI TCP连接(14)-127.0.0.1] 2016-11-11 08:28:42,808   StorageService.java:1128 - 重建节点时出错   org.apache.cassandra.streaming.StreamException:Stream失败了   org.apache.cassandra.streaming.management.StreamEventJMXNotifier.onFailure(StreamEventJMXNotifier.java:85)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   com.google.common.util.concurrent.Futures $ 6.run(Futures.java:1310)   〜[guava-18.0.jar:na] at   com.google.common.util.concurrent.MoreExecutors $ DirectExecutor.execute(MoreExecutors.java:457)   〜[guava-18.0.jar:na] at   com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)   〜[guava-18.0.jar:na] at   com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)   〜[guava-18.0.jar:na] at   com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)   〜[guava-18.0.jar:na] at   org.apache.cassandra.streaming.StreamResultFuture.maybeComplete(StreamResultFuture.java:210)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.streaming.StreamResultFuture.handleSessionComplete(StreamResultFuture.java:186)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.streaming.StreamSession.closeSession(StreamSession.java:430)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.streaming.StreamSession.onError(StreamSession.java:525)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   org.apache.cassandra.streaming.ConnectionHandler $ IncomingMessageHandler.run(ConnectionHandler.java:279)   〜[apache-cassandra-3.1.1.jar:3.1.1] at   java.lang.Thread.run(Thread.java:745)〜[na:1.8.0_74]

我还尝试更改选项,但数据仍未复制到新节点: auto_bootstrap:true

您能否帮我理解为什么数据不会在新节点上复制?

如果您需要我的配置中的更多信息,请与我们联系。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

出现(来自https://issues.apache.org/jira/browse/CASSANDRA-10448)这是CASSANDRA-10961所致。应用该修复程序应解决它。