我在aws ec2上有4个节点cassandra集群。
操作系统:ubuntu cassandra:3.0.9
我取出一个节点,用aws linux和cassandra 3.11.4重建它,当我在引导过程中放回去时,我得到了一个警告,我几乎尝试了所有我新的东西,但无法修复它:
警告[messagingservice传入-/xx.xx.xx.xx]2019-10-01 23:49:05221传入TCP连接。java:103 - 从套接字读取未知的ColumnFamilyException;正在关闭org.apache.cassandra.db.unknowncolumnfamilyexception:找不到cfid f40bb0a0-a2fa-11e7-bbba-a77efb2de499的表。如果刚刚创建了一个表,这可能是由于模式没有完全传播。请等待有关表创建的架构协议。位于org.apache.cassandra.config.cfmetadata$serializer.deserialize(cfmetadata)。java:1517)~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.db.readcommand$serializer.deserialize(readcommand。java:758)~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.db.readcommand$serializer.deserialize(readcommand。java:697) ~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.io.forwardingversionedserializer.deserialize(forwardingversionedserializer。java:50)~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.net.messagein.read(messagein。java:123)~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.net.incomingtcpconnection.receivemessage(incomingtcpconnection。java:192)~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.net.incomingtcpconnection.receivemessages(incomingtcpconnection。java:180)~[apache-cassandra-3.11.4。jar:3.11.4]在org.apache.cassandra.net.incomingtcpconnection.run(incomingtcpconnection。java:94)~[apache-cassandra-3.11.4。jar:3.11.4]
你知道怎么修吗?是否有可能将Cassnara从3.0.9升级到3.11.4?
提前谢谢。
2条答案
按热度按时间fd3cxomn1#
在具有3.11.4的节点上,添加
-Dcassandra.force_3_0_protocol_version=true
到conf/jvm.options
文件。将所有节点升级到3.11后,删除该标志。有关详细信息,请参见3.11.0发行说明。但我建议将一个新节点引导到3.0.9,等待它加入集群,然后逐个升级节点,而不对模式和/或拓扑进行任何更改。
mitkmikd2#
我想alex根据你的帖子问了一个正确的问题-我想我在过去读到过,你不能/不应该引导不同的版本,这听起来像是你做的(例如,添加一个版本号不同于集群当前支持/运行的节点)。您当然可以将现有集群从3.09升级到3.11,但是这些版本的sstable内部结构不同(例如,数据的存储/保存方式不同)。因此,您需要在升级后通过运行carlos提到的“nodetool upgradessstables”迁移到新格式。