我创建了一个 cassandra 的多节点集群:node0 和 node1(cassandra 版本 1.1.1),然后我使用 cassandra-cli 连接到 node0 并创建了一个列族。node0 的信息没问题,但它在 node1 处抛出异常,如下所示:
错误 18:22:48,486 线程 Thread[MigrationStage:1,5,main] 中的异常 org.apache.cassandra.db.marshal.MarshalException:无效的 UTF8 字节 4fd5c745 在 org.apache.cassandra.db.marshal.UTF8Type.getString(UTF8Type.java:56) 在 org.apache.cassandra.cql3.ColumnIdentifier.(ColumnIdentifier.java:47) 在 org.apache.cassandra.cql3.CFDefinition.getKeyId(CFDefinition.java:125) 在 org.apache.cassandra.cql3.CFDefinition.(CFDefinition.java:59) 在 org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1303) 在 org.apache.cassandra.config.CFMetaData.keyAlias(CFMetaData.java:224) 在 org.apache.cassandra.config.CFMetaData.fromSchemaNoColumns(CFMetaData.java:1187) 在 org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1215) 在 org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:291) 在 org.apache.cassandra.db.DefsTable.mergeColumnFamilies(DefsTable.java:396) 在 org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:271) 在 org.apache.cassandra.db.DefsTable.mergeRemoteSchema(DefsTable.java:249) 在 org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:48) 在 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30) 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源) 在 java.util.concurrent.FutureTask$Sync.innerRun(未知来源) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(未知来源)
然后我将数据存储到 node0 的列族中,我可以在 node0 处获取数据,并且 node1 说找不到列族。重启node1后,我可以像node0一样在node1获取数据。
我该如何解决这个问题?