Удаление узла из кластера Cassandra должно состоять из следующих шагов (в Cassandra v1.2.8):
- Выведите целевой узел из эксплуатации до
nodetool decommission
.
- После завершения потоковой передачи данных из выведенного из эксплуатации узла вручную удалите данные в выведенном из эксплуатации узле (необязательно).
Из документов:
nodetool decommission - Decommission the *node I am connecting to*
Обновление. Описанный выше процесс также работает для исходных узлов. В таком случае кластер по-прежнему может работать бесперебойно, не требуя перезагрузки. Когда вам нужно перезапустить кластер по другим причинам, обязательно обновите параметр seeds
, указанный в cassandra.yaml
для всех узлов.
Вывести целевой узел из эксплуатации
Когда начнется вывод из эксплуатации, выведенный из эксплуатации узел сначала будет помечен как leaving
(отмечен как L
). В следующем примере мы удалим node-76
:
> nodetool -host node-76 decommission
> nodetool status
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN node-70 9.79 GB 256 8.3% e0a7fb7a-06f8-4f8b-882d-c60bff51328a 155
UN node-80 8.9 GB 256 9.2% 43dfc22e-b838-4b0b-9b20-66a048f73d5f 155
UN node-72 9.47 GB 256 9.2% 75ebf2a9-e83c-4206-9814-3685e5fa0ab5 155
UN node-71 9.48 GB 256 9.5% cdbfafef-4bfb-4b11-9fb8-27757b0caa47 155
UN node-91 8.05 GB 256 8.4% 6711f8a7-d398-4f93-bd73-47c8325746c3 155
UN node-78 9.11 GB 256 9.4% c82ace5f-9b90-4f5c-9d86-0fbfb7ac2911 155
UL node-76 8.36 GB 256 9.5% 15d74e9e-2791-4056-a341-c02f6614b8ae 155
UN node-73 9.36 GB 256 8.9% c1dfab95-d476-4274-acac-cf6630375566 155
UN node-75 8.93 GB 256 8.2% 8789d89d-2db8-4ddf-bc2d-60ba5edfd0ad 155
UN node-74 8.91 GB 256 9.6% 581fd5bc-20d2-4528-b15d-7475eb2bf5af 155
UN node-79 9.71 GB 256 9.9% 8e192e01-e8eb-4425-9c18-60279b9046ff 155
Когда выведенный из эксплуатации узел помечен как leaving
, он передает данные другим живым узлам. После завершения потоковой передачи узел не будет наблюдаться из кольцевой структуры, а данные, принадлежащие другим узлам, увеличатся:
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN node-70 9.79 GB 256 9.3% e0a7fb7a-06f8-4f8b-882d-c60bff51328a 155
UN node-80 8.92 GB 256 9.6% 43dfc22e-b838-4b0b-9b20-66a048f73d5f 155
UN node-72 9.47 GB 256 10.2% 75ebf2a9-e83c-4206-9814-3685e5fa0ab5 155
UN node-71 9.69 GB 256 10.6% cdbfafef-4bfb-4b11-9fb8-27757b0caa47 155
UN node-91 8.05 GB 256 9.1% 6711f8a7-d398-4f93-bd73-47c8325746c3 155
UN node-78 9.11 GB 256 10.5% c82ace5f-9b90-4f5c-9d86-0fbfb7ac2911 155
UN node-73 9.36 GB 256 9.7% c1dfab95-d476-4274-acac-cf6630375566 155
UN node-75 9.01 GB 256 9.5% 8789d89d-2db8-4ddf-bc2d-60ba5edfd0ad 155
UN node-74 8.91 GB 256 10.5% 581fd5bc-20d2-4528-b15d-7475eb2bf5af 155
UN node-79 9.71 GB 256 11.0% 8e192e01-e8eb-4425-9c18-60279b9046ff 155
Удаление оставшихся данных вручную
После завершения потоковой передачи данные, хранящиеся на выведенном из эксплуатации узле, могут быть удалены вручную, как описано в документе Cassandra. а>:
Никакие данные не удаляются автоматически с выводимого из эксплуатации узла, поэтому, если вы хотите снова ввести узел в эксплуатацию с другим токеном в кольце, его следует удалить вручную.
Это можно сделать, удалив данные, хранящиеся в data_file_directories
, commitlog_directory
и saved_caches_directory
, указанных в файле cassandra.yaml
на выведенном из эксплуатации узле.
person
keelar
schedule
15.08.2013