0

因为我是 Cassandra 的新手。我想使用 pycassa API 创建一个列族。我使用以下代码创建了一个列族:

validators = {'full_name': UTF8_TYPE,
          'email': UTF8_TYPE,
          'state': UTF8_TYPE,
          'gender': UTF8_TYPE,
          'birth_year': LONG_TYPE}

sys.create_column_family('TestKeyspace', 'TestCF', super=False,
          comparator_type=UTF8_TYPE,
          key_validation_class=UTF8_TYPE, 
          column_validation_classes=validators)

python脚本运行良好,没有任何异常。但是当我使用 cassandra-cli 检查这个列族时。我得到了以下异常:

UnavailableException()
        at org.apache.cassandra.thrift.Cassandra$get_range_slices_result$get_range_slices_resultStandardScheme.read(Cassandra.java:17439)
        at org.apache.cassandra.thrift.Cassandra$get_range_slices_result$get_range_slices_resultStandardScheme.read(Cassandra.java:17397)
        at org.apache.cassandra.thrift.Cassandra$get_range_slices_result.read(Cassandra.java:17323)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
        at org.apache.cassandra.thrift.Cassandra$Client.recv_get_range_slices(Cassandra.java:802)
        at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:786)
        at org.apache.cassandra.cli.CliClient.executeList(CliClient.java:1520)
        at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:285)
        at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:201)
        at org.apache.cassandra.cli.CliMain.main(CliMain.java:331)

我不知道为什么我会收到这个错误。有没有人有相同的工作代码。提前致谢。

4

1 回答 1

2

您是如何创建 Keyspace 的,它的复制设置是什么? UnavailableException意味着没有足够的活动副本来响应查询。我的猜测是您不小心将复制因子设置得太高,或者您正在使用NetworkTopologyStrategy复制设置中的数据中心名称与节点的实际数据中心名称不匹配。

于 2014-02-07T00:52:33.287 回答