Узел Cassandra зависает после списания nodetool

Я хочу вывести узлы Cassandra из эксплуатации, поскольку узлам требуется обновление версии с 3.9 до 3.11. Я вхожу в систему на определенном узле и выполняю команду списание nodetool.

Большинство узлов выводятся из эксплуатации из кластера в течение нескольких часов работы, но в некоторых случаях вывод из эксплуатации застревает, и узел не удаляется из кластера, статус / состояние: UL. Первоначально данные передаются через разные узлы, и кажется, что все работает нормально, журналов ошибок нет, но через много часов они остаются в том же состоянии.

Я намерен проверить успешность вывода из эксплуатации с помощью nodetool netstats и nodetool status, вывод которых приведен ниже. В обоих местах написано «УХОД».

nodetool netstats Mode: LEAVING Not sending any streams. Read Repair Statistics: Attempted: 62537724 Mismatch (Blocking): 921768 Mismatch (Background): 746828 Pool Name Active Pending Completed Dropped Large messages n/a 0 44148788 0 Small messages n/a 1 238868718622 143 Gossip messages n/a 0 17713062 0 nodetool status Datacenter: XXXX Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UL x.x.x.x 554.42 GiB 256 20.2% b2d0fe01-a0ce-4f41-b410-0dcf4aa7f5ef rack1

Опять же, после перезапуска службы Cassandra она переходит в состояние UP / NORMAL, и я повторяю тот же процесс до вывода из эксплуатации. Для некоторых узлов он выводится из эксплуатации за одну попытку, но для других требуется несколько попыток для успешного вывода из эксплуатации.

Machine Information: Linux 4.4.0-101-generic x86_64 GNU/Linux
Average Load on each node : ~500GB

Каким должен быть следующий шаг к более эффективному выводу из эксплуатации?


person rajnikant7008    schedule 12.06.2018    source источник
comment
есть что-нибудь в ваших журналах? найдите /var/log/cassandra/system.log   -  person Mandraenke    schedule 12.06.2018
comment
Журналы говорят: Поток: все сеансы завершены   -  person rajnikant7008    schedule 12.06.2018
comment
Почему вы выводите узлы из эксплуатации перед обновлением? Разве вы не можете обновиться на месте?   -  person Carlos Rolo    schedule 12.06.2018
comment
Я списываю узлы перед обновлением, потому что хочу, чтобы данные узла передавались на другие узлы, а обновленный узел должен быть загружен.   -  person rajnikant7008    schedule 12.06.2018


Ответы (2)


Другой подход к выводу узла из эксплуатации - остановить узел и запустить nodetool removenode на другом действующем узле. Это назначит диапазоны токенов другим узлам, и вы можете просто удалить данные удаленного узла. Вы можете использовать nodetool removenode, если у вас коэффициент репликации> 1, что означает, что ваши данные будут доступны и на других узлах. В вашем случае, если вы удаляете несколько узлов, это зависит от вашего значения коэффициента репликации.

person Shoban Sundar    schedule 12.06.2018
comment
removenode следует использовать только в том случае, если decommission не работает. Также не опорожняйте узел перед выводом из эксплуатации. Вывод из эксплуатации фактически отключает узел, даже если процесс запущен. Также не выводите из эксплуатации несколько узлов одновременно. - person Carlos Rolo; 12.06.2018
comment
@CarlosRolo, спасибо за исправление, вы правы, что не запускаете сток nodetool. - person Shoban Sundar; 12.06.2018
comment
Кроме того, если вы используете nodetool removenode, вам понадобится идентификатор хоста узла, который вы хотите удалить. Вы можете получить это, запустив nodetool status и скопировав / вставив идентификатор хоста узла, который вы хотите удалить, после опции removenode. - person apesa; 12.06.2018
comment
Я дважды выполнил процесс вывода из эксплуатации, второй раз удалил списанный узел из свойства семян всех серверов. Даже тогда он получает данные, а состояние UL присутствует. Пожалуйста, предложите. stackoverflow.com/questions/66152353/ - person DollyShukla; 16.02.2021

После списания, если узел не списан, запустите nodetool assassinate. Это принудительно удалит узел.

person Anubhuti Pandey    schedule 27.11.2020