#cassandra #brisk
#кассандра #brisk
Вопрос:
У меня есть кластер Cassandra с 4 узлами с 2 узлами Cassandra и 2 узлами brisk [cassandra TT]. Быстрая бета-версия 2
Я использовал cassandra-cli для вставки создания и обновления семейств столбцов
Мои вставки и прогнозы всегда завершаются неудачно. Например
Семейство столбцов счетчика
[default@StatsKeySpace] create column family Impressions with comparator=UTF8Type and default_validation_class=CounterColumnType and key_validation_class=UTF8Type;
175d69d0-eb6f-11e0-0000-93bbb4d362fc
Waiting for schema agreement...
... schemas agree across the cluster
[default@StatsKeySpace] incr Impressions['Test']['impressions'] by 10;
null
[default@StatsKeySpace] incr Impressions['Test']['impressions'] by 1;
null
[default@StatsKeySpace] get Impressions['Test']['impressions'];
null
[default@StatsKeySpace] list Impressions;
Using default limit of 100
null
Стандартное семейство столбцов
[default@StatsKeySpace] set TestColumnFamily['Test']['tamil']='hai';
null
Все узлы в кластере активны
Это мое определение пространства ключей
Keyspace: StatsKeySpace:
Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
Durable Writes: true
Options: [replication_factor:1]
Я попробовал cassandra-cli в режиме отладки и обнаружил эту ошибку
[default@unknown] use StatsKeySpace;
Authenticated to keyspace: StatsKeySpace
[default@StatsKeySpace] incr Impressions['tamil']['count'] by 1;
null
java.lang.RuntimeException
at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:297)
at org.apache.cassandra.cli.CliMain.processStatement(CliMain.java:217)
at org.apache.cassandra.cli.CliMain.main(CliMain.java:345)
Оба семейства столбцов имеют значение replicate_on_write false
Заранее спасибо за помощь
С уважением, Тамил
Ответ №1:
Благодаря jbellis я обновил версию cassandra, поставляемую с brisk, и запустил cassandra-cli с установленным режимом отладки. Как упоминал jbellis, я получил значимое исключение.
Исключение UnavailableException — недостаточно активных узлов для выполнения фактора репликации.
Поскольку brisk использует brisksnitch, который развертывает узлы brisk и узлы cassandra в разных контроллерах домена. Один из моих 4 узлов кластера, который является исходным для Brisk DC, не работал. Я надеюсь, что именно поэтому я получал это исключение.
Итак, я перезапустил весь свой кластер, обновив все узлы с помощью версии 0.8.6 и keyspace с помощью simplestrategy, поскольку в моем развертывании должен быть только один центр обработки данных.
Теперь все мои вставки и проекции работают нормально 🙂 Надеюсь, brisk b2 совместим с 0.8.6 во всех аспектах
С уважением, Tamil.s
Ответ №2:
Вы пытаетесь увеличить столбцы, не являющиеся счетчиками. См. http://www.datastax.com/dev/blog/whats-new-in-cassandra-0-8-part-2-counters для примера создания CF для использования со счетчиками.
(Brisk b2 поставляется с довольно старой версией Cassandra на данный момент. Я считаю, что более новые версии вернут более полезное сообщение об ошибке.)
Комментарии:
1. Привет, Jbellis, проверьте конфигурацию. Если я не ошибаюсь, я четко упомянул default_validation_class=CounterColumnType . Даже я сталкиваюсь с той же ошибкой, когда использую стандартное семейство столбцов в случае 2.