卡桑德拉插入错误

时间:2011-09-30 15:07:59

标签: cassandra brisk

我有一个4节点Cassandra集群,有2个Cassandra节点和2个快节点[cassandra + TT]。轻快的beta 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 提前感谢您的帮助

此致 泰米尔语

2 个答案:

答案 0 :(得分:3)

感谢jbellis,  我升级了带有brisk的cassandra版本并运行了调试模式设置的cassandra-cli。正如jbellis所说,我得到了一个有意义的例外。

UnavailableException - 没有足够的节点可以满足复制因子。

由于轻快使用brisksnitch,它在不同的DC上部署轻快的节点和cassandra节点。我的4个节点集群中有一个是Brisk DC的种子。我希望这就是我得到这个例外的原因。

因此,我重新启动了整个集群,所有节点都升级了0.8.6,密钥空间使用simplestrategy,因为我的部署只需要一个数据中心。

现在我所有的插入和预测都很好:)希望brisk b2在所有方面与0.8.6兼容

此致 Tamil.s

答案 1 :(得分:1)

您正在尝试增加非计数器列。有关创建用于计数器的CF的示例,请参阅http://www.datastax.com/dev/blog/whats-new-in-cassandra-0-8-part-2-counters

(Brisk b2附带的是Cassandra相当旧的版本。我相信较新的版本会回复更有用的错误信息。)