Повышение класса Cassandra с 3.0.9 до 3.11.4 вызывает «IncomingTcpConnection.java:103 - UnknownColumnFamilyException чтение из сокета ....» - PullRequest
0 голосов
/ 02 октября 2019

У меня есть 4 узла кластера Cassandra в AWS ec2.

ОС: Ubuntu Cassandra: 3.0.9

Я взял один узел и перестроил его с помощью AWS Linux и Cassandra 3.11.4, когдавернуть во время начальной загрузки я получил предупреждение, и я попробовал почти все, что я новый, но не могу это исправить:

ПРЕДУПРЕЖДЕНИЕ [MessagingService-Incoming- / xx.xx.xx.xx] 2019-10-01 23: 49: 05,221 IncomingTcpConnection.java:103 - UnknownColumnFamilyException чтение из сокета;закрытие 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] at org.apache.cassandra.net.IncomingTcpConnection.receiveMessages (IncomingTcpConnection.java:180) ~ [apache-cassandra-3.11.4.jar: 3.11.4] at org.apache.cassandra.net.IncomingTcpConnection.run (IncomingTcpConnection.java:94) ~ [apache-cassandra-3.11.4.jar: 3.11.4]

Есть идеи как это исправить? Можно ли вообще обновить Cassnadra с 3.0.9 до 3.11.4?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

На узле с 3.11.4 добавьте -Dcassandra.force_3_0_protocol_version=true в файл conf/jvm.options. После обновления всех узлов до 3.11 снимите этот флаг. См. 3.11.0 примечания к выпуску для получения более подробной информации.

Но я бы порекомендовал загрузить новый узел до версии 3.0.9, подождать, пока он не присоединится к кластеру, а затем обновить узлы один за другим. без внесения каких-либо изменений в схему и / или топологию.

0 голосов
/ 02 октября 2019

Я думаю, что Алекс задал правильный вопрос, основываясь на вашей публикации - я думал, что читал в прошлом, что вы не можете / не должны загружать разные версии, как это звучит, как вы (например, добавив узел сдругой номер версии, чем кластер, который в настоящее время поддерживает / работает). Конечно, вы можете обновить существующий кластер с 3.09 до 3.11, но эти версии имеют разные внутренние структуры sstable (например, данные хранятся / сохраняются по-разному). Из-за этого вам необходимо перейти на новый формат после обновления, запустив «nodetool upgradedesstables», о котором упоминал Карлос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...