Ошибка вставки Кассандры
У меня есть кластер с 4 узлами Cassandra с 2 узлами Cassandra и 2 оживленными узлами [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
Все узлы в кластере живы
Это мое ключевое пространство Defn
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. Спасибо за помощь заранее
С уважением, Тамил
2 ответа
Благодаря jbellis я обновил версию cassandra, поставляемую с быстрой скоростью, и запустил cassandra-cli с установленным режимом отладки. Как упомянул jbellis, я получил значимое исключение.
UnavailableException - Недостаточно живых узлов для удовлетворения фактора репликации.
Поскольку Brisk использует Brisksnitch, который развертывает оживленные узлы и узлы кассандры на разных DC. Один из моих 4-х узловых кластеров, который является семенем для Brisk DC, не работает. Я надеюсь, что именно поэтому я получил это исключение.
Итак, я перезапустил весь свой кластер со всеми узлами, обновленными до 0.8.6, и с пространством ключей с simplestrategy, поскольку у моего развертывания должен быть только один центр данных.
Теперь все мои вставки и прогнозы в порядке:) Надеюсь, что brisk b2 совместим с 0.8.6 во всех аспектах.
С уважением, Тамил.с
Вы пытаетесь увеличить не счетчик столбцов. См. http://www.datastax.com/dev/blog/whats-new-in-cassandra-0-8-part-2-counters для примера создания CF для использования со счетчиками.
(Brisk b2 поставляется с довольно старой версией Cassandra. Я полагаю, что более новые версии вернут более полезное сообщение об ошибке.)