2012-06-04 2 views
4

У меня есть простая установка cassandra с одним узлом (1.1.0) (настройки по умолчанию). Всякий раз, когда я пытаюсь создать пространство ключей в cassandra-cli, я получаю ошибку: [default @ unknown] создает налог на ключи; org.apache.thrift.transport.TTransportExceptionНевозможно создать пространство ключей в cassandra-cli

В журнале сервера CASSANDRA, то StackTrace исключение: ОШИБКА 12: 15: 04722 Исключение в нити резьбы [MigrationStage: 1,5, главную]

java.lang.AssertionError 
    at org.apache.cassandra.db.DefsTable.updateKeyspace(DefsTable.java:441) 
    at org.apache.cassandra.db.DefsTable.mergeKeyspaces(DefsTable.java:339) 
    at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:269) 
    at org.apache.cassandra.service.MigrationManager$1.call(MigrationManager.java:214) 

Я попытался удалить содержимое в ./var/lib/cassandra/data и перезапустить сервер и мой mac, но все равно в итоге с той же проблемой.

+1

Какую версию кассандры вы используете? – samarth

ответ

3

Ниже поток при добавлении к Кассандре пространства ключей. (Согласно комментариям в исходном коде Cassandrda. Поправьте меня, если я получаю это неправильно)

1) На первом шаге он проверяет, были ли добавлены новые кластеры.

2) На втором этапе мы проверяем, есть ли keyspaces вновь созданные, в этом контексте воссозданной означает, что они были ранее удалены, но все еще существуют в схеме низкого уровня, как пустые ключи

3) На последнем шаге мы обновляем измененные пространства ключей и сохраняем их.

При изменении Keyspace он вызывает функцию «updateKeyspace», и здесь кажется, что метаданные ключей пространства повреждены, что вызывает ошибку утверждения.

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

+0

Прохладный ... Спасибо за указатели Samarth. Я действительно сбросил keypace и воссоздал его. Будет проверять его более тщательно, а затем отметить ответ в качестве принятого ответа. – bschandramohan

+0

Итак, я не могу просто использовать drop keyspace «keyspacename»? Что я должен использовать вместо этого? – bschandramohan

+0

Drop keyspace «keyspacename» кажется правильным способом сбросить пространство ключей. Как узнать, что-то пошло не так, при удалении ключа? В любом случае, спасибо Самарту - Примите ответ. – bschandramohan

5

Похоже, что системные ключи были повреждены. Удаление файлов данных из

  • /вар/Lib/Cassandra/данные
  • /вар/Библиотека/Cassandra/commitlog
  • /вар/Lib/Cassandra/saved_caches

и перезапуском Проблема была решена сервером cassandra. (Вышеуказанные каталоги определены в $ CASSANDRA_HOME/CONF/cassandra.yaml)

+0

Hie Chandra, я удалил пространство ключей (oldkeyspacename) и создал новый с другим именем месяца назад. В последнее время я получаю сообщение smoetime как «unknown keyspace oldkeyspacename», даже когда я делаю запрос на новое ключевое слово, которое я сделал. Если я последую вашей заданной процедуре, проблема будет решена? Я очень стараюсь, пожалуйста, дайте мне знать спасибо – codersofthedark

Смежные вопросы