Узлы Cassandra становятся недоступными друг для друга

У меня есть 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

Кажется, что все схемы узлов разные, но я до сих пор не понимаю, почему они помечены как близкие друг к другу.


person Ventsi Popov    schedule 09.12.2018    source источник
comment
Возможно, контейнеры сменили IP? Вы пробовали запускать статус nodetool для каждого контейнера?   -  person Simon Fontana Oscarsson    schedule 10.12.2018
comment
Контейнеры IP хороши. Все они показывают один UN (текущий, где я запускаю статус nodetool) и 2 DN с правильными адресами.   -  person Ventsi Popov    schedule 10.12.2018


Ответы (1)


Если у вас другая версия Cassandra, восстановление nodetool не будет извлекать данные. Оставьте ту же версию Cassandra. иногда узел показывается вниз или недоступен из-за сплетен, что происходит неправильно. причиной может быть сеть, высокая нагрузка на этот узел или узел очень занят, и выполняется множество операций ввода-вывода, таких как ремонт, уплотнение и т. д.

person LetsNoSQL    schedule 13.12.2018
comment
Все 3 узла с одинаковой версией, серверы вообще не загружаются, сеть не проблема, все 3 сервера могут общаться вручную - person Ventsi Popov; 13.12.2018