Невозможно добавить узлы в существующий кластер Cassandra - PullRequest
3 голосов
/ 22 ноября 2011

У нас есть кластер кассандры из 6 узлов на EC2, мы должны удвоить его емкость до 12 узлов.Таким образом, чтобы добавить еще 6 узлов, я выполнил следующие шаги:

1 Вычислил токены для 12 узлов и настроил новые узлы соответственно.

2 При правильной конфигурации запустили новые узлы, чтобы они новыеузлы будут разделять существующие диапазоны токенов.

  • В начале все новые узлы показывали текущую потоковую передачу.
  • В состоянии вызова все узлы находились в состоянии «Соединение»
  • Через 12 часов 2 узла завершили потоковую передачу и пришли в нормальное состояние.
  • Но на оставшихся 4узлы после потоковой передачи некоторого количества данных, они не показывают никакого прогресса, похоже, что они застряли

Мы установили Cassandra-0.8.2 и имеем около 500 ГБ данных на каждом из существующих узлов и храним данныена томе EBS.

Как я могу решить эту проблему и получить сбалансированный кластер из 12 узлов?

Можно ли перезапустить узлы?

Если я очистил каталог данных отзастрял узлы Cassandra и перезапущен при новой установке, это приведет к потере данных?

Ответы [ 3 ]

3 голосов
/ 22 ноября 2011

Там не будет никакой потери данных, если вы используете коэффициент репликации 2 или выше.

В версии 0.8.2 Cassandra есть несколько известных проблем - пожалуйста, обновите до 0.8.8 на всех исходных узлах, а также на новых появившихся узлах, а затем начните процедуру для узлов, которые не завершили.

Также помните, что хранение данных на томах EBS - это плохая идея :

http://www.mail-archive.com/user@cassandra.apache.org/msg11022.html

0 голосов
/ 29 ноября 2011

Итак, вот ответ, почему некоторые из наших узлов застряли.

1) Мы обновили cassandra-0.7.2 до cassandra0.8.2

2) И мы загружаем sstables утилитой sstable-loader

3) Но некоторые данные для некоторых семейств столбцов вставляются непосредственно из задания hadoop. И данные этих семейств столбцов показывают какую-то другую версию, поскольку мы не обновили API Cassandra в Hadoop.

4) Из-за этой несовпадения версий Кассандра выдает «исключение несоответствия версий» и прекращает потоковую передачу

5) Таким образом, решение для этого состоит в использовании "nodetool scrub keyspace columnfamily" . Я использовал это, и моя проблема решена

Итак, главное здесь, если вы модернизируете емкость кластера Кассандры, вы должны выполнить очистку nodetool

0 голосов
/ 22 ноября 2011

Хотя это не даст прямого ответа на ваш вопрос, надеюсь, оно направит вас в правильном направлении:

На freenode.org.

имеется довольно активный #cassandra IRC-канал.
...