我有一个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
集群中所有节点都是活的
这是我的keyspace定义
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提前感谢您的帮助
问候,泰米尔
多亏了jbellis我升级了随brisk发布的cassandra版本,并在设置了调试模式的情况下运行cassandra-cli。正如jbellis提到的,我得到了一个有意义的异常。
UnavailableException -没有足够的节点存活以满足复制因子。
因为brisk使用了bricksnitch,它在不同的dc上部署了brisk节点和cassandra节点。我的4个节点集群中的一个,也就是Brisk DC的种子,宕机了。我希望这就是我得到那个异常的原因。
因此,我重新启动了整个集群,所有节点升级为0.8.6,keyspace升级为simplestrategy,因为我的部署只需要一个数据中心。
现在我所有的插入和投影都做得很好:)希望轻快b2在各方面都与0.8.6兼容
问候,Tamil.s
您正在尝试增加非计数器列。请参阅http://www.datastax.com/dev/blog/whats-new-in-cassandra-0-8-part-2-counters获取创建CF用于计数器的示例。
(轻快b2船是什么在这一点上是一个相当旧的卡桑德拉版本。我相信新版本会给出一个更有用的错误信息。