У меня есть 3 узла elassandra, работающие в контейнерах докеров.
Контейнеры создаются как:
Хост 10.0.0.1: docker run --name elassandra-node-1 --net=host -e CASSANDRA_SEEDS="10.0.0.1" -e CASSANDRA_CLUSTER_NAME="BD Storage" -e CASSANDRA_DC="DC1" -e CASSANDRA_RACK="r1 " -d страпдата/элассандра:последняя
Хост 10.0.0.2: docker run --name elassandra-node-2 --net=host -e CASSANDRA_SEEDS="10.0.0.1,10.0.0.2" -e CASSANDRA_CLUSTER_NAME="BD Storage" -e CASSANDRA_DC="DC1" -e CASSANDRA_RACK="r1" -d stripdata/elassandra:последняя
Хост 10.0.0.3: docker run --name elassandra-node-3 --net=host -e CASSANDRA_SEEDS="10.0.0.1,10.0.0.2,10.0.0.3" -e CASSANDRA_CLUSTER_NAME="BD Storage" -e CASSANDRA_DC=" DC1" -e CASSANDRA_RACK="r1" -d stripdata/elassandra:последняя
Кластер работал нормально пару дней с момента создания, эластик, кассандра все было идеально.
Однако в настоящее время все узлы cassandra стали недоступны друг для друга: состояние Nodetool на всех узлах похоже на
Центр обработки данных: DC1
Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owners (active) Host ID Rack DN 10.0.0.3 11.95 GiB 8 100.0% 7652f66e-194e-4886-ac10-0fc21ac8afeb r1 DN 10.0. 0,2 11,92 ГиБ 8 100,0% b91fa129-1dd0-4cf8-be96-9c06b23daac6 r1 UN 10.0.0.1 11,9 ГиБ 8 100,0% 5c1afcff-b0aa-4985-a3cc-7f932056c08f r1
Где UN является текущим хостом 10.0.0.1 То же самое на всех остальных узлах.
Nodetool descriptioncluster на 10.0.0.1 похож на
Информация о кластере: Имя: BD Storage Snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch DynamicEndPointSnitch: включен Разделитель: org.apache.cassandra.dht.Murmur3Partitioner Версии схемы: 24fa5e55-3935-3c0e-9808-99ce502fe98d: [10.0.0.1]
UNREACHABLE: [10.0.0.2,10.0.0.3]
При подключении к первому узлу повторяется только эта информация:
2018-12-09 07:47:32,927 WARN [OptionalTasks:1] org.apache.cassandra.auth.CassandraRoleManager.setupDefaultRole(CassandraRoleManager.java:361) CassandraRoleManager пропустил настройку роли по умолчанию: некоторые узлы не были готовы 2018-12-09 07:47:32,927 INFO [OptionalTasks:1] org.apache.cassandra.auth.CassandraRoleManager$4.run(CassandraRoleManager.java:400) Задача установки завершилась с ошибкой, перепланирование 09.12.2018 07:47:32,980 INFO [РУКОПОЛОЖЕНИЕ -/10.0.0.2] org.apache.cassandra.net.OutboundTcpConnection.lambda$handshakeVersion$1(OutboundTcpConnection.java:561) Версия подтверждения связи с /10.0.0.2 2018-12-09 07:47:32,980 ИНФОРМАЦИЯ [HANDSHAKE-/10.0 .0.3] org.apache.cassandra.net.OutboundTcpConnection.lambda$handshakeVersion$1(OutboundTcpConnection.java:561) Версия квитирования с /10.0.0.3
Через некоторое время при перезапуске какого-либо узла:
2018-12-09 07:52:21,972 ПРЕДУПРЕЖДЕНИЕ [MigrationStage:1] org.apache.cassandra.service.MigrationTask.runMayThrow(MigrationTask.java:67) Не удается отправить запрос на вытягивание схемы: узел /10.0.0.2 недоступен.
Пробовал до сих пор: Перезапуск всех контейнеров одновременно Перезапуск всех контейнеров один за другим Перезапуск кассандры во всех контейнерах, например: service cassandra перезапуск Nodetool отключить сплетни, затем включите его Ремонт Nodetool: Ошибка команды восстановления № 1 с ошибкой Конечная точка не жива: /10.0.0.2
Кажется, что все схемы узлов разные, но я до сих пор не понимаю, почему они помечены как близкие друг к другу.